沒有永远下不停的雨。 收藏本站
登陆 / 注册 搜索

阅读: 11.7K   回复: 7

[# C] C语言实现 撒凯密码 解密

小执念 古黑浩劫论坛大牛 2016-11-27 17:38 |显示全部楼层

可遇不可求的事:故乡的云,上古的玉,随手的诗,十九岁的你。

管理员
  前几天有个小伙伴提到这个密码,我看着比较简单就随手写了个程序,但是没写出完美的方法。现在把代码贴出来,请大家完善这个程序吧!

全屏查看

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<string.h>

  4. #define N 80

  5. int main(void)
  6. {
  7.         
  8.     char message[N];
  9.         char ch;
  10.     int n,i;
  11.     int length;
  12.         
  13.         printf("输入要解密的信息:\n");
  14.         gets(message);
  15.         printf("输入位移次数(1-25):\n");
  16.         
  17.         scanf("%d",&n);
  18.         printf("\n");
  19.         
  20.         
  21.         length = strlen(message);
  22.         
  23.         for(i=0; i<length; i++)
  24.         {
  25.                 if(message[i]>='A' && message[i]<='Z')
  26.                
  27.                         message[i] = ((message[i]-'A')+n)%26+'A';

  28.                 else if(message[i]>='a' && message[i]<='z')
  29.                
  30.                         message[i] = ((message[i]-'a')+n)%26+'a';

  31.                 else continue;
  32.         }
  33.         
  34.         puts("解密后的信息:\n");
  35.         puts(message);

  36.         printf("\n");

  37.         return 0;

  38. }
复制代码

C语言实现 撒凯密码 解密 撒凯密码.png


评分

参与人数 1成长值 +1 金币 +1 展开 理由
深蓝 + 1 + 1

查看全部评分


Yoki 「初入古黑」 2016-11-27 19:56 来自手机 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

什么叫  没有完美的方法
Yoki 「初入古黑」 2016-11-28 09:57 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

手机忘带了所以认真学习!小执念的意思应该是每次只能输入一个移位数字吧,但破译的时候这个数字应该是不清楚的,那么就不要输入位移次数,直接再嵌套一个循环就好啦~代码我也写好了,由于某种不可描述的原因,上传不了.....
Yoki 「初入古黑」 2016-11-29 20:43 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

  1. //Caesar encoding
  2. #include<stdio.h>
  3. #include<stdlib.h>
  4. #include<string.h>
  5. #define N 80

  6. int main(void){
  7.         char message[N];
  8.         int length;
  9.         printf("ÇëÊäÈëÒª½âÃܵÄÐÅÏ¢£º\n");
  10.         gets(message);
  11.         length=strlen(message);
  12.         for(int j=0;j<26;j++)
  13.         {
  14.                 for(int i=0;i<length;i++){
  15.                         if(message[i]>='A' && message[i]<='Z')
  16.                                 message[i]=(message[i]-'A'+1)%26+'A';
  17.                         if(message[i]>='a' && message[i]<='z')
  18.                                 message[i]=(message[i]-'a'+1)%26+'a';
  19.                 }
  20.                 printf("offset[%d]",j+1);
  21.                 puts(message);
  22.         }
  23. }
复制代码


应该也许大概是没问题的。。。到自己电脑运行又出现很奇怪的问题。(参照小执念程序改的)

评分

参与人数 1成长值 +3 金币 +3 展开 理由
小执念 + 3 + 3 威武!

查看全部评分

Yoki 「初入古黑」 2016-11-29 23:10 来自手机 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

小执念 发表于 2016-11-29 21:17
有什么奇怪的问题?

自己的电脑莫名出现不能执行   应该不是程序的锅  我就没管啦
soarcloud 「龙战于野」 2016-12-6 11:00 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

单表代替密码求取代替表,
肉眼判断的话就穷尽1到25种移位,打印出来自己看哪个是对的.如果有参考脚本,可以直接用参考素材做判断条件.
暮色里的白雪檐 「出类拔萃」 2018-5-1 09:51 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

我就是路过来看看的。。。#j325:
深海里的那抹蓝 「出类拔萃」 2018-5-7 09:22 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

我和我的小伙伴们都惊呆了!#y412:
您需要登录后才可以回帖 登录 | 注册账号  

本版积分规则

关于本站|大事记|小黑屋|古黑论 网站统计

GMT+8, 2020-9-24 21:37 , Processed in 0.029393 second(s), 23 queries , Redis On.

© 2015-2020 GuHei.Net

Powered by Discuz! X3.4

快速回复 返回列表