CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  ASP

MD 5/ SHA1 等Hash算法的正确是用问题.

楼主ShiningstarHu(Shining_star)2005-06-09 12:28:27 在 Web 开发 / ASP 提问

开这个帖子的目的,是希望大家能够对使用Hash算法有一个正确的认识.并且回复一个叫作   Hozaka朋友给我留言的问题,以及他对MD5算法的一些认识.   也可以说是对我之前一个帖子后续.  
  原贴地址:  
  http://community.csdn.net/Expert/topic/4069/4069250.xml?temp=.9598657  
   
  首先感谢Hozaka以及其他朋友对我的原帖的支持.  
   
  我在这里再重申一边,Hash的算法不管是SHA1还是MD5,是用来保证数据完整性的  
  而不是用来保证数据机密性的.Hozaka在给我的留言中提到的一个例子,用一个key对数据加密,然后用这个key对数据解密.(这个是他人为的加密和解密)  
   
  这个例子里面说到的话题属于对称密钥加密算法的范畴.对称加密有对称加密的弱点,就是Key一旦泄密,则被这个Key加密的信息的机密性也就从此打破了,因此这里涉及到Key   Management的话题.(这个话题也太大了,这里不做进一步解释了)  
   
  要实现数据机密性的需求实际上和Hash算法没有非常直接的关系.   Hash算法,不管是MD5还是SHA1并没有什么真正意义上的key,算法都是公开的,这些算法的特点是不允许逆运算.其产生的效果好比在传统现实中我们对一份合同书进行签名,签名之后这份合同书就不允许修改了,那么使用了电子化以后我们怎么保证这一点呢?   因此发明了Hash算法来保证这一点.   举个例子来讲:  
   
  比如你用Word   写了一份合同书Email给对方,然后用Hash算法对这个整份的合同书进行编码.   编码结果是你得到一个固定长度的字符串,而且这个字符串代表了原始这封合同书上的每一个字符.   这个就是电子化意义上的数字签名.   有了这个东西,不关这份合同书在哪里,我只要有前面通过Hash算法生成的摘要信息,我就可以在任何时候判断出这份合同书是否被修改过.   这就是Hash算法的设计初衷.     由此我们可以看出,   Hash算法没有任何机密性可言.   他仅仅是用于保证原始数据一旦生成就不允许修改.   这里体现数据完整性.  
   
  因此,在CSDN上的很多人用Hash算法,比如MD5   来保证数据的机密性,比如用于对数据库中保存的密码数据进行加密,其做法是不恰当的.希望大家看了这些以后能够对Hash算法有一个新的认识,并且能够正确的使用Hash算法.    
   
  如果大家有问题欢迎给我发送留言.我也很乐意回复. 问题点数:10、回复次数:6Top

1 楼ShiningstarHu(Shining_star)回复于 2005-06-09 14:09:48 得分 0

需要自己顶一下了   :PTop

2 楼Hozaka(空虚的狼)回复于 2005-06-11 20:07:58 得分 2

呵呵,帮顶Top

3 楼patchclass(黑翼)回复于 2005-06-11 20:29:06 得分 2

顶一下,呵呵Top

4 楼pyusksk503(Tony)回复于 2005-06-12 08:10:45 得分 2

学习!Top

5 楼yiyeshu(逐月苍狼-月光下的舞者)回复于 2005-06-12 20:05:57 得分 2

markTop

6 楼HLis(就是 HLis ~~)回复于 2005-06-12 21:08:18 得分 2

“……因此,在CSDN上的很多人用Hash算法,比如MD5   来保证数据的机密性,比如用于对数据库中保存的密码数据进行加密,其做法是不恰当的.……”  
   
  这有什么不恰当的?(无奈地摇摇头)  
   
  对数据库里面的口令(Password   我更喜欢翻译成口令)做   Hash   加密我认为是必要的。这样哪天你的数据库被人读了也不至于让他(她)知道所有人的密码啊。这种做法(对数据库中的口令做   Hash   加密)太普遍了,而且也是很有效的。  
   
  对文件提取摘要的过程其实也可以理解为(只是理解为)一种加密过程:就是让对方无法知道,你改成什么样子才能和现在保持一个   Hash   结果。Top

相关问题

  • 关于HASH的算法
  • HASH算法是干嘛用的阿?
  • 求高效Hash算法实现
  • 救命呀,有人知道单向MD5 hash算法吗?
  • 有人知道单向MD5 hash算法吗?
  • 哪位大兄弟有MD5 hash算法的VC6源代码?
  • 求hash算法的脚本语言实现
  • 需要MD5算法,能够对大整数进行HASH的。
  • HASH算法中的一种SHA1如何在C++中实现啊?
  • java加密体系中的sha 算法到底是OpenSSL中的sha还是sha1?

关键词

  • 算法
  • 加密
  • 口令
  • 数据
  • 数据库
  • hozaka
  • sha1
  • hash
  • md5
  • 机密

得分解答快速导航

  • 帖主:ShiningstarHu
  • Hozaka
  • patchclass
  • pyusksk503
  • yiyeshu
  • HLis

相关链接

  • Web开发类图书

广告也精彩

反馈

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