用C语言实现DES加密与解密.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
用C语言实现DES加密与解密

用C语言实现DES加密与解密 ? #includeiostream.h?? 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? };? 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? };? int?E[48]?=?{? 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,? 20,21,22,23,24,25,? 24,25,26,27,28,29,? 28,29,30,31,32,1? };? int?P[32]={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?}; 19,11,3,60,52,44,36,? 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},? PC2[48]={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};? Char_to_Int(in,Msg_Int,8);//正确 O_to_B(Msg_Int,Msg_Bin,8);//正确 coutendl;? Convert(Msg_Bin,Msg_Bin_PC1,PC1,56);? Divide(Msg_Bin_PC1,C[0],D[0],56);? for(i=0;i16;i++)? {? if(i==0)? { RLC1(C[i],C[i+1],28);? RLC1(D[i],D[i+1],28);? }? else?if(i==1)? {? RLC1(C[i],C[i+1],28);? RLC1(D[i],D[i+1],28);? }? else?if(i==8)? {? RLC1(C[i],C[i+1],28);? RLC1(D[i],D[i+1],28);? }? else?if(i==15)? {? RLC1(C[i],C[i+1],28);? RLC1(D[i],D[i+1],28);? }? else? {? RLC2(C[i],C[i+1],28);? RLC2(D[i],D[i+1],28);? Combine(C[i+1],D[i+1],Key_Bin,56);? Convert(Key_Bin,out[i],PC2,48);? }? }? //生成子密钥正确 void?S_box(int?in[],int?out[])? {? int?i;? int?SBox[8][64]?={? {? 14,4,13,1,2,15,11,8,3,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,? 3,13,4,7,15,2,8,14,12,0,1,10,6,9,11,5,? 0,14,7,11,10,4,13,1,5,8,12,6,9,3,

文档评论(0)

liudao + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档