C语言凯撒密码加密与解密

(2)kaiser加密算法 具体程序:#include<stdio.h>#include<conio.h> char encrypt(char ch,int n)/*加密函数,把字符向右循环移位n*/ { while(ch>='A'&&ch<='Z') { return ('A'+(ch-'A'+n)%26); } while(ch>='a'&&ch<='z') { return ('a'+(ch-'a'+n)%26); } return ch

忘了说解密了,解密过程完全可以使用上面的代码,只要把key的值改成26-key就行了.比如,加密的密钥是3,那么解密密钥就是23,这样就可以使用同一段代码.至于为什么+23和-3的效果一样,还请翻阅数论有关剩余类环的知识.

我写了一个加密的#include <stdio.h>#include <string.h>#define MAXSIZE 81 int main() { char str[MAXSIZE]; int i; int offset; int n; printf("请输入要加密的字符串:"); //最大输入个数是80个字符 gets(str); printf("请输入要偏移量:"); //若

unsigned caesar_encryption(char* in, char* out, int n, int length) { int i = 0; if( !in | !out ) return 0; for( i = 0 ; i < length ; i++ ){ out[i] = ( in[i] + n ) % 26; } return 1; } unsigned caesar_decryption(char* in, char* out, int n, int length) { int i = 0; if( !in | !out )

#include#includeint dif[26];char s[200];int main(){ gets(s); for(int i=0;i='a'&&s[i]='A'&&s[i] { s[i] = dif[s[i]-'A']; } } puts(s); system("pause");}

/* 和楼上的相比,或许 看上去很烦 ch[i] +=5; if (ch[i] > 'z') { ch[i] -= 26; } 可以改成和 楼上的 方法 等价于 ch[i] = 'a' + (ch[i] - 'a' + 5) % 26; */ # include # include //用到了system(); 不写 ,可以用 getchar(); #define strwidth 117 //定义长度 int main(

供参考 译码只需要一句即可 感兴趣自己分析下#include int main() { char s[100]; int k; int i; while(~scanf("%s%d", s, &k)) { k%=26; for(i = 0; s[i]; i ++) s[i] = (s[i] - 'A' + 26 - (k+i + 1)%26)%26 + 'A'; printf("%s\n", s); } return 0; }

/* 声明: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=(*

加上这个函数吧 void force_decode(void) { char buf[100]; char buf1[100]; int n,i; gets(buf); for(n = 1; n < 26; n ++) { printf("use key %d\n", n); for(i = 0; buf[i]; i++) { if(buf[i] >= 'A' && buf[i]<='Z') { buf1[i] = (buf[i]-'A'-n+26)%26+'A'; } else if(buf[i] >= 'a' &&

#include<stdio.h>#include<conio.h> char encrypt(char ch,int n)/*加密函数,把字符向右循环移位n*/ { while(ch>=A&&ch<=Z) { return (A+(ch-A+n)%26); } while(ch>=a&&ch<=z) { return (a+(ch-a+n)%26); } return ch; }void menu()/*菜单,1.加密,2.

相关文档

凯撒密码c语言加密解密
c语言凯撒密码
凯撒密码解密编程
凯撒密码用c语言26字母
凯撒加密c语言简单
凯撒密码破解
c用凯撒密码加密信息
凯撒密码d c
ntjm.net
ppcq.net
qyhf.net
5213.net
yydg.net
电脑版