ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:20.16KB ,
资源ID:13364416      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/13364416.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(DES加密算法代码Word下载.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

DES加密算法代码Word下载.docx

1、int Data6464; 8个明文通过十进制转二进制得到的 64bit明文int Key6464; /8个密钥通过十进制转二进制得到的 64bit密钥int DataTemp64; Data64到L0和R0通过IP置换得到的64bit明文,用于得int L032,R032;0的时候表示int flagDorK=0; / 标志位,如果是1的时候表示明文,密文/此段全局变量服务于段雪琦所写所用函数PC_1置换坐标表int PC_156 = 57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36

2、,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4;PC_2置换坐标表int PC_248 = 14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53, 46,42,50,36,29,32;/迭代左移位数数组int lsi16=1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1;/逆初始置换表IP

3、A-1int IP_1_Table64 = 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,0,40,8,48,16,56,24;int KeyOutBox48=0; / 输出的子密钥数组int Isinumber=0; / 用于记录是第 i次加密,Isinumber 等于i/sherry第二个函数所用/f操作中将R0扩

4、展为48位的置换坐标表int fExpa nd4848 = 32,1,2,3,4,5,4,5,6,7,8,9,8,9,10,11,12,13,12,13,14,15,16,17,16,17,18,19,20,21,24,25,26,27,28,29,28,29,30,31,32,31;P变换置换坐标表int fPCha nge32=16,7,20,21,29,12,28,17,1,15,23,26,5,18,31,10,2,8,24,14,32,27,3,9,19,13,30,6,22,11,4,25;S盒置换坐标表int sBox8416 = 14, 4,13, 1,2,15,11,8, 3

5、,10, 6,12, 5, 9, 0, 7, 0,15, 7, 4,14, 2,13, 1,10, 6,12,11,9, 5, 3, 8, 4, 1,14, 8,13, 6, 2,11,15,12, 9, 7, 3,10, 5, 0,15,12, 8, 2, 4, 9, 1, 7, 5,11, 3,14,10, 0, 6,13,15, 1,8,14, 6,11,3, 4, 9, 7, 2,13,12, 0, 5,10, 0,14, 4,11,10, 4,13, 1, 5, 8,12, 6, 9, 3, 2,15,13, 8,10, 1,3,15, 4, 2,11,6, 7,12, 0, 5,1

6、4, 910, 0, 9,14, 6, 3,15, 5, 1,13,12, 7,11,4, 2, 8,13, 7, 0, 9, 3, 4, 6,10, 2, 8, 5,14,12,11,15, 1,13, 6, 4, 9, 8,15, 3, 0,11, 1,2,12, 5,10,14, 7, 1,10,13, 0, 6, 9, 8, 7, 4,15,14, 3,11, 5, 2,12 7,13,14, 3, 0, 6, 9,10, 1,2, 8, 5,11,12, 4,15,13, 8,11,5, 6,15, 0, 3, 4, 7, 2,12, 1,10,14, 9,10, 6, 9, 0,1

7、2,11, 7,13,15, 1,3,14, 5, 2, 8, 4, 3,15, 0, 6,10, 1,13, 8, 9, 4, 5,11,12, 7, 2,14 2,12, 4, 1, 7,10,11,6, 8, 5, 3,15,13, 0,14, 9,14,11,2,12, 4, 7,13, 1,5, 0,15,10, 3, 9, 8, 6,10, 6, 9, 0,12,11, 7, 8,15, 9,12, 5, 6, 3, 0,14,12, 1,10,15, 9, 2, 6, 8, 0,13, 3, 4,14, 7, 5,11,10,15, 4, 2, 7,12, 9, 5, 6, 1,

8、13,14, 0,11,3, 8, 9,14,15, 5, 2, 8,12, 3, 7, 0, 4,10, 1,13,11,6, 4, 3, 2,12, 9, 5,15,10,11,14, 1,7, 6, 0, 8,13 4,11,2,14,15, 0, 8,13, 3,12, 9, 7, 5,10, 6, 1,13, 0,11,7, 4, 9, 1,10,14, 3, 5,12, 2,15, 8, 6, 1,4,11,13,12, 3, 7,14,10,15, 6, 8, 0, 5, 9, 2, 6,11,13, 8, 1,4,10, 7, 9, 5, 0,15,14, 2, 3,1213,

9、 2, 8, 4, 6,15,11, 1,10, 9, 3,14, 5, 0,12, 7, 1,15,13, 8,10, 3, 7, 4,12, 5, 6,11,0,14, 9, 2, 7,11,4, 1, 9,12,14, 2, 0, 6,10,13,15, 3, 5, 8, 2, 1,14, 7, 4,10, 8,13,15,12, 9, 0, 3, 5, 6,11;/* 生成 R0 L0 *将输入的分别为8个的明文和密钥转化为64bit的明文和密钥,* 分别放入 Data64和Key64; *将生成的64bit的明文通过IP置换得到L0和R0* */void ROa ndLO(char

10、tempData8)int i,j,temp,y;int k=0;int tempBox64;int mtemp=0; for(i=0; i=0;j-)temp=tempDatai&(1j);if(0 = temp)tempBoxk=0;k+;elsetempBoxk=1;/当flagDorK等于1时,为明文转化,生成L0和R0if(flagDorK=1)printf(转化为 64bit 明文 n);for(y=0;y64;y+)Data64y=tempBoxy;tempBoxy=0;prin tf(%d,Data64y);if(y= 7|y=15|y=23|y=39|y=47|y=55|y=

11、63)if(y=31)nDataTempy=Data64DatalPy-1;if(y32)L0y=DataTempy;R0y-32=DataTempy;n 明文Data过IP置换后得到:L0:for(i=0;i32;i+)if(i= 7|i=15|i=23|i=31)nRO:,ROi);nnKey64/当flagDorK等于0时,为密钥转化,生成密钥if(flagDorK=0) 转化为64bit的密钥nKey64y=tempBoxy;,Key64y);if(y= 7|y=15|y=23|y=39|y=47|y=55|y=63) /* 输入函数 void In put()int i;scan f(%c,&preDatai);flagDorK=1;ROa ndLO(preData);getchar(); 请输入密钥:preKeyi);flagDorK=0;R0a ndL0(preKey);/IP逆置换int DESP_1_Tra nsform(i nt data64)int ent;int temp64;for(cnt = 0; cnt 64; cn t+)tempc nt = dataIP_1

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1