资源简介
上课写的数据加密算法,用C语言实现DES算法加解密。要求是输入16位16进制的明文,16位的密钥加密。解密运算与加密不同的只是Key的使用顺序相反。亲测样例已过。
代码片段和文件信息
//16轮DES 加解密算法
#include
#include
//初始置换IP
int IP[64] = { 58 50 42 34 26 18 10 2
60 52 44 36 28 20 12 4
62 54 46 38 30 22 14 6
64 56 48 40 32 24 16 8
57 49 41 33 25 17 9 1
59 51 43 35 27 19 11 3
61 53 45 37 29 21 13 5
63 55 47 39 31 23 15 7
};
//逆初始置换IP_1
int IP_1[64] = { 40 8 48 16 56 24 64 32
39 7 47 15 55 23 63 31
38 6 46 14 54 22 62 30
37 5 45 13 53 21 61 29
36 4 44 12 52 20 60 28
35 3 43 11 51 19 59 27
34 2 42 10 50 18 58 26
33 1 41 9 49 17 57 25
};
//扩充置换表32-48
//E-边上两列为扩展内容中间32bit为原文
int E_Table[48] = { 31 0 1 2 3 4
3 4 5 6 7 8
7 89101112
111213141516
151617181920
192021222324
232425262728
2728293031 0
};
//置换函数P
int P_Table[32] = { 16 7 20 21 29 12 28 17
1 15 23 26 5 18 3110
2 8 24 14 32 27 3 9
19 13 30 6 22 11 4 25
};
//S盒 压缩48-32
//8个s盒
//6进4出 一与最后2bit选择行,中间4个选列,110011 3行9列;s1中为11即1011;
int S[8][4][16] = {
// S1
1441312151183106125907
0157414213110612119538
4114813621115129731050
1512824917511314100613
// S2
1518146113497213120510
3134715281412011069115
0147111041315812693215
1381013154211671205149
// S3
1009146315511312711428
1370934610285141211151
1364981530111212510147
1101306987415143115212
// S4
7131430691012851112415
1381156150347212110149
1069012117131513145284
3150610113894511127214
// S5
2124171011685315130149
1411212471315015103986
4211110137815912563014
1181271142136150910453
// S6
1211015926801334147511
1015427129561131401138
9141552812370410113116
4321295151011141760813
// S7
4112141508133129751061
1301174911014351221586
1411131237141015680592
6111381410795015142312
// S8
1328461511110931450127
1151381037412561101492
7114191214206101315358
2114741081315129035611
};
//子密钥生成——置换选择1
int PC_1[56] = { 5648403224168
0574941332517
915850423426
1810259514335
62544638302214
6615345372921
1356052443628
201242719113
};
//子密钥生成-置换选择2
int PC_2[48] = { 1316102304
227145209
221811
相关资源
- 音频感知哈希函数的提取matlab codes
- DES加密算法C++实现
- DES五种加密模式(MFC实现) 源码
- vc++6.0DES加密算法+数据加密+文件加密
- C++ DES图像加密与解密
- C语言 3DES、AES、RC6、TEA、RSA、MD5、S
- AES、DES加密算法C语言源码
- C++语言版本的DES加解密应用程序源码
- CBC模式的DES加密解密程序
- C语言实现的DES加密算法
- DES算法_C语言实现啊
- C语言版本的DES加密解密算法代码!(
- 桌面计算器
- Large Scale C++ Software Design
- DES源代码C语言实现
- 分组密码算法DES的实现代码
- VC++ DES 加密解密算法
- DES加密算法C++类
- DES加密解密算法(可加解密中文字符
- C++实现的DES加密解密的动态库的源码
- 操作系统原理及设计原则(Operating
- Operating Systems Design and Implementation Th
- Modern+C+++Design中文版(Google C++ 编程规
- DES两密三重(DES加密算法)
- DES加密解密 MFC C++
- C语言实现的 3DES文件加密
- DES_加密解密算法的C++实现--实验报告
- 实现S-DES对任意文件的加解密
- DES算法 CBC模式 C语言实现
- C语言des算法对文件的加密解密软件
评论
共有 条评论