一个关于凯撒编码与解码的C程序源码 有意见多多提,

 

 1//凯撒加密算法就是将D设置为3时的加密方法。下面是用C实现的加密模块。
 2
 3//////////////////////////////////////////////////////////////////////////
 4//
 5//凯撒加密算法基本原理
 6//参数:
 7// D   : 移位数
 8// data : 原始数据
 9// result : 返回结果
10// len   : 原始数据长度
11//
12void func1(int D,const char* data,char* result, int len){
13// 凯撒加密算法变形
14for (int i = 0;i < len;i++)
15{
16   int val = (data[i]+D);
17   if (val > (int)'z')
18   {
19    val = (int)(val-26);
20   }

21   //cout << (char)val ;
22   result[i] = (char)val;
23}

24//cout << endl;
25}

26
27//////////////////////////////////////////////////////////////////////////
28//
29//凯撒解密算法基本原理
30//参数:
31// D   : 回移位数
32// data : 编码后数据
33// result : 原始数据
34// len   : 数据长度
35//
36void func2(int D,const char* data,char* result, int len){
37// 凯撒加密算法变形
38for (int i = 0;i < len;i++)
39{
40   if (data[i] < 'A' || data[i] > 'Z')
41   {
42    result[i] = data[i];
43    continue;
44   }

45   if (data[i] >= 'A' && data[i] <= 'E')
46   {
47    char val = char(data[i] + 'V' - 'A');
48    result[i] = (char)val;
49   }
else{
50    result[i] = (char)(data[i] - D);
51   }

52}

53}

54

posted on 2010-01-15 17:01 编码者-thinker 阅读(1449) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2010年1月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
31123456

导航

统计

常用链接

留言簿

随笔分类

随笔档案

文章分类

文章档案

搜索

最新评论

阅读排行榜

评论排行榜