[C] 暴力破解凯撒密码 c源码 →→→→→进入此内容的聊天室

来自 Soft Mockingjay, 2022-05-07, 写在 C, 查看 139 次.
URL http://www.code666.cn/view/7c6580eb
  1. #include <stdio.h>
  2. #include <string.h>
  3. int main(void)
  4. {
  5. char str[] = "ESP BFTNV MCZHY QZI UFXAD ZGPC ESP WLKJ OZR ZQ NLPDLC LYO JZFC FYTBFP DZWFETZY TD TNSONDLMLOOL";
  6. //对整个字符串循环,把1-25全部尝试一遍,i即为密钥
  7. for(int i = 1; i < 26; i++)
  8. {
  9. //遍历字符串中的每个字符
  10. for(int j = 0; j < strlen(str); j++)
  11. {
  12. if(str[j] == ' ') //如果j是空格,就将j原封不动地打印出来,因为我们需要划分单词
  13. {
  14. printf("%c", str[j]);
  15. }
  16. else //如果不是空格,就将当前字符向后移动i位,i为当前轮的密钥
  17. {
  18. printf("%c", (str[j] + i - 'A') % 26 + 'A'); //打印得到向后移动的密文
  19. }
  20. }
  21. printf("\n\n");
  22. }
  23. return 0;
  24. }
  25.  
  26.  
  27.  
  28.  
  29. 凯撒密码为移位密码,手工破解一般是将两位字母替换成is it be on me等单次,  三位字符替换成the等字符,出现最多的字符一般是e。
  30.  
  31. 如果是如下字符 rjjy rj ts ymj xfggfym bj bnqq inxhzxxymj uqfs
  32.  
  33. 穷举之后,最有可能的一句话是:  MEET ME ON THE SABBATH WE WILL DISCUSSTHE PLAN ,其中  DISCUSSTHE  应该为 DISCUSS   THE

回复 "暴力破解凯撒密码 c源码"

这儿你可以回复上面这条便签

captcha