转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> VB.NET程序 >> 正文
用vb实现DES加解密算法(三)--解密         ★★★★

用vb实现DES加解密算法(三)--解密

作者:闵涛 文章来源:闵涛的学习笔记 点击数:3941 更新时间:2009/4/23 18:59:36
8(i) = R7(i)
    Next
   
   
   
    ''''进行第9次迭代
    For i = 0 To 47
        CodeE(i) = R8(E(i))                 ''''经过E变换扩充,由32位变为48位
        CodeE(i) = CodeE(i) Xor K8(i)        ''''与K8按位作不进位加法运算
    Next
   
    ''''分8组
    For i = 0 To 5
        CodeS1(i) = CodeE(i)
        CodeS2(i) = CodeE(i + 6)
        CodeS3(i) = CodeE(i + 12)
        CodeS4(i) = CodeE(i + 18)
        CodeS5(i) = CodeE(i + 24)
        CodeS6(i) = CodeE(i + 30)
        CodeS7(i) = CodeE(i + 36)
        CodeS8(i) = CodeE(i + 42)
    Next
   
    ''''S盒运算,得到8个数
   
        S(0) = S1(CodeS1(5) + CodeS1(0) * 2, CodeS1(4) + CodeS1(3) * 2 + CodeS1(2) * 4 + CodeS1(1) * 8)
        S(1) = S2(CodeS2(5) + CodeS2(0) * 2, CodeS2(4) + CodeS2(3) * 2 + CodeS2(2) * 4 + CodeS2(1) * 8)
        S(2) = S3(CodeS3(5) + CodeS3(0) * 2, CodeS3(4) + CodeS3(3) * 2 + CodeS3(2) * 4 + CodeS3(1) * 8)
        S(3) = S4(CodeS4(5) + CodeS4(0) * 2, CodeS4(4) + CodeS4(3) * 2 + CodeS4(2) * 4 + CodeS4(1) * 8)
        S(4) = S5(CodeS5(5) + CodeS5(0) * 2, CodeS5(4) + CodeS5(3) * 2 + CodeS5(2) * 4 + CodeS5(1) * 8)
        S(5) = S6(CodeS6(5) + CodeS6(0) * 2, CodeS6(4) + CodeS6(3) * 2 + CodeS6(2) * 4 + CodeS6(1) * 8)
        S(6) = S7(CodeS7(5) + CodeS7(0) * 2, CodeS7(4) + CodeS7(3) * 2 + CodeS7(2) * 4 + CodeS7(1) * 8)
        S(7) = S8(CodeS8(5) + CodeS8(0) * 2, CodeS8(4) + CodeS8(3) * 2 + CodeS8(2) * 4 + CodeS8(1) * 8)
   
    ''''S盒运算32位结果
    For i = 0 To 7
        RetS(i * 4 + 0) = (S(i) And &H8) \ &H8
        RetS(i * 4 + 1) = (S(i) And &H4) \ &H4
        RetS(i * 4 + 2) = (S(i) And &H2) \ &H2
        RetS(i * 4 + 3) = (S(i) And &H1) \ &H1
    Next
   
   
    For i = 0 To 31
        ''''P变换
        CodeP(i) = RetS(P(i))
       
        ''''产生L9,R9
        R9(i) = L8(i) Xor CodeP(i)
        L9(i) = R8(i)
    Next
   
   
   
    ''''进行第10次迭代
    For i = 0 To 47
        CodeE(i) = R9(E(i))                 ''''经过E变换扩充,由32位变为48位
        CodeE(i) = CodeE(i) Xor K7(i)        ''''与K7按位作不进位加法运算
    Next
   
    ''''分8组
    For i = 0 To 5
        CodeS1(i) = CodeE(i)
        CodeS2(i) = CodeE(i + 6)
        CodeS3(i) = CodeE(i + 12)
        CodeS4(i) = CodeE(i + 18)
        CodeS5(i) = CodeE(i + 24)
        CodeS6(i) = CodeE(i + 30)
        CodeS7(i) = CodeE(i + 36)
        CodeS8(i) = CodeE(i + 42)
    Next
   
    ''''S盒运算,得到8个数
   
        S(0) = S1(CodeS1(5) + CodeS1(0) * 2, CodeS1(4) + CodeS1(3) * 2 + CodeS1(2) * 4 + CodeS1(1) * 8)
        S(1) = S2(CodeS2(5) + CodeS2(0) * 2, CodeS2(4) + CodeS2(3) * 2 + CodeS2(2) * 4 + CodeS2(1) * 8)
        S(2) = S3(CodeS3(5) + CodeS3(0) * 2, CodeS3(4) + CodeS3(3) * 2 + CodeS3(2) * 4 + CodeS3(1) * 8)
        S(3) = S4(CodeS4(5) + CodeS4(0) * 2, CodeS4(4) + CodeS4(3) * 2 + CodeS4(2) * 4 + CodeS4(1) * 8)
        S(4) = S5(CodeS5(5) + CodeS5(0) * 2, CodeS5(4) + CodeS5(3) * 2 + CodeS5(2) * 4 + CodeS5(1) * 8)
        S(5) = S6(CodeS6(5) + CodeS6(0) * 2, CodeS6(4) + CodeS6(3) * 2 + CodeS6(2) * 4 + CodeS6(1) * 8)
        S(6) = S7(CodeS7(5) + CodeS7(0) * 2, CodeS7(4) + CodeS7(3) * 2 + CodeS7(2) * 4 + CodeS7(1) * 8)
        S(7) = S8(CodeS8(5) + CodeS8(0) * 2, CodeS8(4) + CodeS8(3) * 2 + CodeS8(2) * 4 + CodeS8(1) * 8)
   
    ''''S盒运算32位结果
    For i = 0 To 7
        RetS(i * 4 + 0) = (S(i) And &H8) \ &H8
        RetS(i * 4 + 1) = (S(i) And &H4) \ &H4
        RetS(i * 4 + 2) = (S(i) And &H2) \ &H2
        RetS(i * 4 + 3) = (S(i) And &H1) \ &H1
    Next
   
   
    For i = 0 To 31
        ''''P变换
        CodeP(i) = RetS(P(i))
       
        ''''产生L10,R10
        R10(i) = L9(i) Xor CodeP(i)
        L10(i) = R9(i)
    Next
   
   
   
    ''''进行第11次迭代
    For i = 0 To 47
        CodeE(i) = R10(E(i))                 ''''经过E变换扩充,由32位变为48位
        CodeE(i) = CodeE(i) Xor K6(i)        ''''与K6按位作不进位加法运算
    Next
   
    ''''分8组
    For i = 0 To 5
        CodeS1(i) = CodeE(i)
        CodeS2(i) = CodeE(i + 6)
        CodeS3(i) = CodeE(i + 12)
        CodeS4(i) = CodeE(i + 18)
        CodeS5(i) = CodeE(i + 24)
        CodeS6(i) = CodeE(i + 30)
        CodeS7(i) = CodeE(i + 36)
        CodeS8(i) = CodeE(i + 42)
    Next
   
    ''''S盒运算,得到8个数
   
        S(0) = S1(CodeS1(5) + CodeS1(0) * 2, CodeS1(4) + CodeS1(3) * 2 + CodeS1(2) * 4 + CodeS1(1) * 8)
        S(1) = S2(CodeS2(5) + CodeS2(0) * 2, CodeS2(4) + CodeS2(3) * 2 + CodeS2(2) * 4 + CodeS2(1) * 8)
        S(2) = S3(CodeS3(5) + CodeS3(0) * 2, CodeS3(4) + CodeS3(3) * 2 + CodeS3(2) * 4 + CodeS3(1) * 8)
        S(3) = S4(CodeS4(5) + CodeS4(0) * 2, CodeS4(4) + CodeS4(3) * 2 + CodeS4(2) * 4 + CodeS4(1) * 8)
        S(4) = S5(CodeS5(5) + CodeS5(0) * 2, CodeS5(4) + CodeS5(3) * 2 + CodeS5(2) * 4 + CodeS5(1) * 8)
        S(5) = S6(CodeS6(5) + CodeS6(0) * 2, CodeS6(4) + CodeS6(3) * 2 + CodeS6(2) * 4 + CodeS6(1) * 8)
        S(6) = S7(CodeS7(5) + CodeS7(0) * 2, CodeS7(4) + CodeS7(3) * 2 + CodeS7(2) * 4 + CodeS7(1) * 8)
        S(7) = S8(CodeS8(5) + CodeS8(0) * 2, CodeS8(4) + CodeS8(3) * 2 + CodeS8(2) * 4 + CodeS8(1) * 8)
   
    ''''S盒运算32位结果
    For i = 0 To 7
        RetS(i * 4 + 0) = (S(i) And &H8) \ &H8
        RetS(i * 4 + 1) = (S(i) And &H4) \ &H4
        RetS(i * 4 + 2) = (S(i) And &H2) \ &H2
        RetS(i * 4 + 3) = (S(i) And &H1) \ &H1
    Next
   
   
    For i = 0 To 31
        ''''P变换
        CodeP(i) = RetS(P(i))
       
        ''''产生L11,R11
    &nbs

上一页  [1] [2] [3] [4] [5] [6] [7] [8]  下一页


没有相关教程
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台