CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  VB.NET

MD5加密的结果为什么不同?

楼主why2002plus()2006-03-17 14:35:34 在 .NET技术 / VB.NET 提问

函数如下:  
  Public   Function   MD5(ByVal   strSource   As   String,   ByVal   Code   As   Int16)   As   String  
                  Dim   dataToHash   As   Byte()   =   (New   System.Text.ASCIIEncoding).GetBytes(strSource)  
                  Dim   hashvalue   As   Byte()   =   CType(System.Security.Cryptography.CryptoConfig.CreateFromName("MD5"),   System.Security.Cryptography.HashAlgorithm).ComputeHash(dataToHash)  
                  Dim   i   As   Integer  
                  Select   Case   Code  
                          Case   16     '选择16位字符的加密结果  
                                  For   i   =   4   To   11  
                                          MD5   +=   Hex(hashvalue(i)).ToLower  
                                  Next  
                          Case   32     '选择32位字符的加密结果  
                                  For   i   =   0   To   15  
                                          MD5   +=   Hex(hashvalue(i)).ToLower  
                                  Next  
                          Case   Else       'Code错误时,返回全部字符串,即32位字符  
                                  For   i   =   0   To   hashvalue.Length   -   1  
                                          MD5   +=   Hex(hashvalue(i)).ToLower  
                                  Next  
                  End   Select  
                  Return   MD5  
          End   Function  
   
   
  测试结果:  
  输入:0023  
  MD5(TextBox2.Text,   16)的结果是:8cb217baa866b31   只有15位,动网同样的数是8cb2170baa866b31   16位  
  输入:0008  
  MD5(TextBox2.Text,   16)的结果是:4a4bd33c834bc6b9   有16位,动网同样的数是4a4bd33c834bc6b9   也是16位而且相等。  
   
  为什么同样的算法,类似的输入,怎么会少一位呢?请大家指点。  
   
  问题点数:100、回复次数:6Top

1 楼qugui(阿贵)回复于 2006-03-17 15:05:57 得分 25

没试过Top

2 楼copico(北北)回复于 2006-03-17 15:09:07 得分 25

因为MD5里面的参数有不同吧?Top

3 楼kowloons(0分帖先锋)回复于 2006-03-17 17:52:51 得分 25

因为输入的手不同   所以系统检测到指纹不一样喽Top

4 楼why2002plus()回复于 2006-03-30 14:04:00 得分 0

?Top

5 楼zhouheng123456(授之以鱼,不如授之以渔)回复于 2006-03-30 14:15:11 得分 25

 
   
  我没研究过MD5  
   
  但我想.  
  他可能是在加密是随机生成了N个数..  
  用这些数对源数据进行算法加密.  
  而这随机生成的数字应该就是保存在结果中  
  所以算法是固定的..结果就当然不固定了.  
  Top

6 楼why2002plus()回复于 2006-05-13 13:32:46 得分 0

无解,一贯做法,结贴,人人有分,谢谢各位。Top

相关问题

  • 请教下面的密码加密过程出错哪里,为什么结果一加密的要求结果不同
  • 请教下面的密码加密过程出错哪里,为什么结果一加密的要求结果不同
  • 恳求给个DES或者MD5加密解密算法,我在网上下载的DES算法怎么同一个字符加密后有不同的结果,还有MD5算法不同的字符有相同的结果?
  • 100分求这小段加密程序结果!
  • 为什么.net里的md5加密和asp里的md5加密得到结果不一样?
  • Web Form MD5加密和Win Form MD5加密的结果不一样,如何解决啊?100分
  • delphi中怎么样对不同类型的加密狗读写?
  • 加密
  • '加密'
  • 关于TripleDES加密的计算结果,正确者立即给分

关键词

  • 加密
  • 算法
  • 字符
  • code
  • md5
  • hashvalue
  • 结果
  • 输入
  • 不同
  • hex

得分解答快速导航

  • 帖主:why2002plus
  • qugui
  • copico
  • kowloons
  • zhouheng123456

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo