如果推进数字是3的话,这个凯撒密码就可以是L ORYH BRX。
I love you可以用520来表示。
520,是519与521之间的自然整数,网络语言中,“520”谐音“我爱您”。又如:5201314“我爱您一生一世”,520320179“我爱您想爱您一起走”。
扩展资料
五字开头爱情数字密码
一、5406 我是你的
二、5407 我是你妻
三、54064 我是你老师
四、5976 我到家了
五、52067我爱你不变
六、587129955我不介意爱朝朝暮暮(我不求与你
七、5211314我爱你一生一世
#include stdlib.h
#include stdio.h
#include string.h
#define N 10000
void function(char message[],char key[],int mode); //加解密函数
int main()
{
int choose;
char m[N],key[N];
printf("维吉尼亚加密,请输入1;解密,请输入2:\n");
scanf("%d",choose);
getchar();
if (choose == 1 || choose == 2)
{
if (choose == 1)
printf("输入明文:\n");
if (choose == 2)
printf("输入密文:\n");
gets(m);
printf("输入密钥:\n");
gets(key);
function(m,key,choose);
}
else
printf("输入错误!\n");
return 0;
}
void function(char message[],char key[],int mode) //加解密函数
{
int i, j = 0; //j控制key的轮回
int len_k = strlen(key); //密钥长度
char s[N];
for(i=0; message[i]!='\0'; i++)
{
if(message[i] == 32) //判断空格
s[i]=' ';
else
{
if (mode == 1)
s[i]=(int(message[i]-'a')+int(key[j%len_k]-'a'))%26+97;
if (mode == 2)
s[i]=(int(message[i]-'a')-int(key[j%len_k]-'a')+26)%26+97;
j++;
}
printf("%c",s[i]);
}
printf("\n");
}
gets(l);//不加这句M就输入不了为什么?
是因为没有这句的话,按的回车键就输成m了。
连用两个输入语句时,需要考虑回车键,就像我代码里的getchar()。
360问答
求古典密码学的c语言代码
guiyids0033 LV122014-01-16
各位高手小弟急需一个维吉尼亚密码的程序。帮帮忙
满意答案

aa7777777777qq
LV12
2014-01-16
给: 维吉尼亚密码的C语言源代码 设m表示明文序列,k表示密钥序列 #include ctype.h #include stdio.h #include stdlib.h #include string.h #include conio.h void crypt(char m[],char k[],char r[]) { int i,j,s=0; j=strlen(k); for(i=0;m[i];i++) m[i]=tolower(m[i]); for(i=0;m[i];i++) if(isalpha(m[i])) { r[i]=(m[i]-'a'+k[s%j]-'a')%26+'a'; s++;/* s用来跳过明文中的空格字符 */ } else r[i]=m[i]; r[i]=0;/* 密文字符串结束符 */ for(i=0;r[i];i++) r[i]=toupper(r[i]); } void decrypt(char c[],char k[],char m[]) { int i,j,s=0; j=strlen(k); for(i=0;c[i];i++) c[i]=tolower(c[i]); for(i=0;c[i];i++) if(isalpha(c[i])) { m[i]=(c[i]-k[s%j]+26)%26+'a'; s++; } else m[i]=c[i]; m[i]=0; } void main() { char m[]="welcome to my blog.i am bugeyes.";//我这里是赋值了一个固定的字符串为明文序列,你也可以做成用户输入的 char k[]="bugeyeswuyan";//我这里是赋值了一个固定的字符串为密钥序列,你也可以做成用户输入的 char c[80]; char d[80]; system("cls");; crypt(m,k,c); decrypt(c,k,d); puts(m); puts(k); puts(c); puts(d); }