Loading...

[C] Mã hóa CAESAR với code C



Thuật toán mã hóa Caesar là gì? Mọi người có thể tham khảo tại đây.





Mã hóa Caesar với bước nhảy bằng 3, được biểu diễn:



Bây giờ tôi xin vào thẳng code luôn cho không mất thời gian, học bằng code là cách học tốt nhất!!!
Còn về ý tưởng của bài giải thì mọi người có thể tự tìm hiểu tại đây


#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
#define SIZE 100
int Mahoa_Ceaser(char *Str_Nguon,char *Str_Mahoa,int len,int key);
int Giaima_Ceaser(char Str_Nguon[],char Str_Giaima[],int len,int key);
int khoitao(char Str[]);
void main()
{
char Str[SIZE],Str_Mahoa[SIZE],Str_Giaima[SIZE];
int len,key;
printf("Nhap chuoi: ");
flushall();
gets(Str);
printf("Nhap so buoc nhay: ");
scanf("%d",&key);
len=strlen(Str);
khoitao(Str_Mahoa);
khoitao(Str_Giaima);
Mahoa_Ceaser(Str,Str_Mahoa,len,key);
Giaima_Ceaser(Str,Str_Giaima,len,key);
printf("Chuoi %s duoc ma hoa thanh: %s\n",Str,Str_Mahoa);
printf("Chuoi %s duoc giai ma thanh: %s\n",Str,Str_Giaima);
getch();
}
int Mahoa_Ceaser(char Str_Nguon[],char Str_Mahoa[],int len,int key)
{
for (int i=0;i<len;i++)
{
char c=Str_Nguon[i];
if(c>='A' && c<='Z')
Str_Mahoa[i]=(Str_Nguon[i]-'A'+key)%26 +'A';
else if(c>='a' && c<='z')
Str_Mahoa[i]=(Str_Nguon[i]-'a'+key)%26+'a';
else Str_Mahoa[i]=Str_Nguon[i];
}
return 0;
}
int khoitao(char Str[])
{
for(int i=0;i<SIZE;i++)
Str[i]=0;
return 0;
}
int Giaima_Ceaser(char Str_Nguon[],char Str_Giaima[],int len,int key)
{
for (int i=0;i<len;i++)
{
char c=Str_Nguon[i];
if(c>='A' && c<='Z')
Str_Giaima[i]=(abs(Str_Nguon[i]-'A'-key))%26 +'A';
else if(c>='a' && c<='z')
Str_Giaima[i]=(abs(Str_Nguon[i]-'a'-key))%26+'a';
else Str_Giaima[i]=Str_Nguon[i];
}
return 0;
}


viết bởi nmT


Previous
Next Post »

6 nhận xét

Write nhận xét
Unknown
AUTHOR
December 19, 2012 delete

Thank you for mentioning my article

Reply
avatar
Unknown
AUTHOR
June 06, 2014 delete

cảm ơn bạn nhiều nha, mới học Thuật toán này nên chưa biết viết sao nữa )

Reply
avatar
Unknown
AUTHOR
May 08, 2017 delete

code này vẫn chạy sai bạn yêu ơi!

Reply
avatar
Py
AUTHOR
July 09, 2018 delete

Xin giúp em mã hóa số này với, e ko hiểu: 20-8-9-16-5-22-3-2-11-22-3-14-8-9
Mã được mã hóa 3 lần và bước dịch chuyển là 4.

Reply
avatar
lakshmilabeau
AUTHOR
March 04, 2022 delete

No more live link in this comments field

Reply
avatar

ConversionConversion EmoticonEmoticon

:)
:(
=(
^_^
:D
=D
=)D
|o|
@@,
;)
:-bd
:-d
:p
:ng
Loading...