黑夜彩虹 发表于 2006-8-29 19:30:24

招聘版主!(由于题目过于简单,本题作废)

本版块目前虽然有2个版主,但似乎工作都没做好。

故想借着此贴,再招聘1、2个版主。(需:有能力、责任心、热心和有足够的时间管理及帮助其他网友。。。)

考核题目:(需完成以下题目,最好是delphi)

编写一个加密解密算法,其算法要求如下(代换算法):

相对比较简单,就是对字母表中的每个字母,用它之后的第3个字母来代换,如:

明文:meet me after the toga party

密文:phhw ph diwhu wkh wrjd sduwb

字母表是循环的,即认为紧随Z后的是字母A。可通过列出所有的可能来定义变换:

明文:a b c d e f g h i j k l m n o p q r s t u v w x y z

密文:d e f g h i j k l m n o p q r s t u v w x y z a b c

[ 本帖最后由 秋风下的落叶 于 2006-8-30 11:42 编辑 ]

caterpilla 发表于 2006-8-29 20:42:43

呵呵,要求很简单啊,仅是加密部分。。。。。。。。
修正了空格的判断。。。。。。。。。
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
char s;
int i=0;
gets(s);
for(i=0;i<strlen(s);i++)
{
      if((s==' ') continue;
      if((s>='a')&&(s<='z'))
      s=(s-'a'+3)%26+'a';
   else if((s>='A')&&(s<='Z')) s=(s-'A'+3)%26+'A';
   else
   {
         printf("Error\n");
         system("PAUSE");
         exit(1);
   }   
}
puts(s);
system("PAUSE");       
return 0;
}

[ 本帖最后由 caterpilla 于 2006-8-30 09:27 编辑 ]

wzwgp 发表于 2006-8-29 21:16:03

版主“招兵买马”,是偶等菜鸟的福音。

支持!!!

Flyeagle 发表于 2006-8-29 22:58:47

期待更多的高手教导我等菜鸟。。

黑夜彩虹 发表于 2006-8-30 08:00:17

楼上的测试不成功~~

枫影 发表于 2006-8-30 09:24:05

呵呵...凯撒加密算法,去年研究过。。

caterpilla 发表于 2006-8-30 09:24:43

原帖由 laomms 于 2006-8-30 08:16 发表


不是不成功,而是论坛发贴的时候把" "给抹掉了,而且把" " 后的字都变成了歪斜,不知道怎么回事.放上原码.
StrName 变成了StrName,后面的字符就变成了斜体.

顺便说一下,caterpilla 兄发 ...
确实如此,呵呵,谢谢兄弟:P 。。。。。。。

caterpilla 发表于 2006-8-30 09:32:37

粗略点评

两种方法编程方法的异同:
laomms 兄用的是查表的方法,列出了明码与密码的对应表,程序中直接对应替换就好了。这种方法可以任意规定明密码的对应关系。不过明密码目前在程序中是可见的。
我的方法是根据算法通过计算得到结果,但需要算法有一定的规律性才可程序实现。如果没规律,也只能查表了。

caterpilla 发表于 2006-8-30 10:33:52

原帖由 laomms 于 2006-8-30 10:12 发表
防止明码,用ASCII码表示字符,也可以到一定的作用:
bac= Chr(98)+chr(97) +chr(99)
看到只是989799,当然专门写个字符串转换函数更好.
有道理,密码表的保护是个问题,呵呵。。。。。。。。

黑夜彩虹 发表于 2006-8-30 11:05:11

发现:laomms 兄弟还是比较热心的,有没有兴趣做版主~~
页: [1] 2
查看完整版本: 招聘版主!(由于题目过于简单,本题作废)