凯撒密码实现英文短句的加解密
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了凯撒密码实现英文短句的加解密相关的知识,希望对你有一定的参考价值。
参考技术A1. 将“We are students.”这个英文词句用k=4的凯萨密码翻译成密码
1. 恺撒密码,
作为一种最为古老的对称加密体制,他的基本思想是:
通过把字母移动一定的位数来实现加密和解密。
例如,如果密匙是把明文字母的位数向后移动三位,那么明文字母B就变成了密文的E,依次类推,X将变成A,Y变成B,Z变成C,由此可见,位数就是凯撒密码加密和解密的密钥。
如:ZHDUHVWXGHQWV(后移三位)
2. 凯撒密码,
是计算机C语言编程实现加密和解密。挺复杂的。你可以研究一下哦。
2. 将凯撒密码(K=7)的加密、解密过程用C语言编程实现
/*
声明:MSVC++6.0环境测试通过
*/
#include<stdio.h>
#include<ctype.h>
#define maxlen 100
#define K 7
char *KaisaEncode(char *str)//加密
char *d0;
d0=str;
for(;*str!=\'\\0\';str++)
if(isupper(*str))
*str=(*str-\'A\'+K)%26+\'A\';
else if(islower(*str))
*str=(*str-\'a\'+K)%26+\'a\';
else
continue;
return d0;
char *KaisaDecode(char *str)//解密
char *d0;
d0=str;
for(;*str!=\'\\0\';str++)
if(isupper(*str))
*str=(*str-\'A\'-K+26)%26+\'A\';
else if(islower(*str))
*str=(*str-\'a\'-K+26)%26+\'a\';
else
continue;
return d0;
int main(void)
char s[maxlen];
gets(s);
puts(KaisaEncode(s));
puts(KaisaDecode(s));
return 0;
3. 将凯撒密码X的加密、解密过程用C语言编程实现
(2)kaiser加密算法 具体程序:#include #include char encrypt(char ch,int n)/*加密函数,把字符向右循环移位n*/ while(ch>=\'A\'&&ch=\'a\'&&ch<=\'z\') return (\'a\'+(ch-\'a\'+n)%26); return ch; void menu()/*菜单,1.加密,2.解密,3.暴力破解,密码只能是数字*/ clrscr(); printf("\\n========================================================="); printf("\\n1.Encrypt the file"); printf("\\n2.Decrypt the file"); printf("\\n3.Force decrypt file"); printf("\\n4.Quit\\n"); printf("=========================================================\\n"); printf("Please select a item:"); return; main() int i,n; char ch0,ch1; FILE *in,*out; char infile[20],outfile[20]; textbackground(BLACK); textcolor(LIGHTGREEN); clrscr(); sleep(3);/*等待3秒*/ menu(); ch0=getch(); while(ch0!=\'4\') if(ch0==\'1\') clrscr(); printf("\\nPlease input the infile:"); scanf("%s",infile);/*输入需要加密的文件名*/ if((in=fopen(infile,"r"))==NULL) printf("Can not open the infile!\\n"); printf("Press any key to exit!\\n"); getch(); exit(0); printf("Please input the key:"); scanf("%d",&n);/*输入加密密码*/ printf("Please input the outfile:"); scanf("%s",outfile);/*输入加密后文件的文件名*/ if((out=fopen(outfile,"w"))==NULL) printf("Can not open the outfile!\\n"); printf("Press any key to exit!\\n"); fclose(in); getch(); exit(0); while(!feof(in))/*加密*/ fputc(encrypt(fgetc(in),n),out); printf("\\nEncrypt is over!\\n"); fclose(in); fclose(out); sleep(1); if(ch0==\'2\') clrscr(); printf("\\nPlease input the infile:"); scanf("%s",infile);/*输入需要解密的文件名*/ if((in=fopen(infile,"r"))==NULL) printf("Can not open the infile!\\n"); printf("Press any key to exit!\\n"); getch(); exit(0); printf("Please input the key:"); scanf("%d",&n);/*输入解密密码(可以为加密时候的密码)*/ n=26-n; printf("Please input the outfile:"); scanf("%s",outfile);/*输入解密后文件的文件名*/ if((out=fopen(outfile,"w"))==NULL) printf("Can not open the outfile!\\n"); printf("Press any key to exit!\\n"); fclose(in); getch(); exit(0); while(!feof(in)) fputc(encrypt(fgetc(in),n),out); printf("\\nDecrypt is over!\\n"); fclose(in); fclose(out); sleep(1); if(ch0==\'3\') clrscr(); printf("\\nPlease input the infile:"); scanf("%s",infile);/*输入需要解密的文件名*/ if((in=fopen(infile,"r"))==NULL) printf("Can not open the infile!\\n"); printf("Press any key to exit!\\n"); getch(); exit(0); printf("Please input the outfile:"); scanf("%s",outfile);/*输入解密后文件的文件名*/ if((out=fopen(outfile,"w"))==NULL) printf("Can not open the outfile!\\n"); printf("Press any key to exit!\\n"); fclose(in); getch(); exit(0); for(i=1;i<=25;i++)/*暴力破解过程,在察看信息正确后,可以按\'Q\'或者\'q\'退出*/ rewind(in); rewind(out); clrscr(); printf("==========================================================\\n"); printf("The outfile is:\\n"); printf("==========================================================\\n"); while(!feof(in)) ch1=encrypt(fgetc(in),26-i); putch(ch1); fputc(ch1,out); printf("\\n========================================================\\n"); printf("The current key is: %d \\n",i);/*显示当前破解所用密码*/ printf("Press \'Q\' to quit and other key to continue。
\\n"); printf("==========================================================\\n"); ch1=getch(); if(ch1==\'q\'||ch1==\'Q\')/*按\'Q\'或者\'q\'时退出*/ clrscr(); printf("\\nGood Bye!\\n"); fclose(in); fclose(out); sleep(3); exit(0); printf("\\nForce decrypt is over!\\n"); fclose(in); fclose(out); sleep(1); menu(); ch0=getch(); clrscr(); printf("\\nGood Bye!\\n"); sleep(3); 。
4. 怎样编写程序:实现恺撒密码加密单词"julus"
用下面程序:新建个txt,放进去任意单词,设置#define N 5中的值,实现字母移位,达到加密目的。
本程序提供解密功能/************************************************************************//* 版权所有:信息工程学院 王明 使用时请注明出处!! *//* 算法:凯撒密码体制 e799bee5baa6e4b893e5b19e31333264643062 *//************************************************************************/#include #define N 5void jiami(char namea[256]) FILE *fp_jiami,*fp_file2; char c; fp_jiami=fopen(namea,"rb"); fp_file2=fopen("file2.txt","wb"); while(EOF!=(fscanf(fp_jiami,"%c",&c))) if((c>=\'A\'&&c=\'a\'&&c=\'A\'&&c=\'a\'&&c=\'a\'&&c=\'A\'&&c=\'a\'&&c=\'A\'&&c=\'a\'&&c=\'A\'&&c<=\'Z\')c=c+32; fprintf(fp_file3,"%c",c); fclose(fp_file3); fclose(fp_jiemi); int main() char name[256]; int n; printf("输入你要操作的TXT文本:"); gets(name); printf("\\n请选择需要进行的操作:\\n"); printf(" 1:加密 2:解密 \\n"); printf("输入你的选择:"); scanf("%d",&n); switch(n) case 1:jiami(name);printf("\\t加密成功!!\\n\\n"); break; case 2:jiemi(name);printf("\\t解密成功!!\\n\\n"); break; default:printf("输入操作不存在!"); return 0;。
5. 谁有PYTHON编写的凯撒密码的加密和解密代码
给你写了一个.
def convert(c, key, start = \'a\', n = 26):
a = ord(start)
offset = ((ord(c) - a + key)%n)
return chr(a + offset)
def caesarEncode(s, key):
o = ""
for c in s:
if c.islower():
o+= convert(c, key, \'a\')
elif c.isupper():
o+= convert(c, key, \'A\')
else:
o+= c
return o
def caesarDecode(s, key):
return caesarEncode(s, -key)
if __name__ == \'__main__\':
key = 3
s = \'Hello world!\'
e = caesarEncode(s, key)
d = caesarDecode(e, key)
print e
print d
运行结果:
Khoor zruog!
Hello world!
以上是关于凯撒密码实现英文短句的加解密的主要内容,如果未能解决你的问题,请参考以下文章