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

Casino near San Francisco - MapYRO
Casino near San Francisco. 세종특별자치 출장안마 Use the 논산 출장안마 interactive seating chart 하남 출장샵 to see 춘천 출장안마 more than 17534 slot machines and more than 2000 table games. View map. 충청북도 출장안마 RAT

Reply
avatar
Loading...