分享:MD5加密和sha加密

2019-12-27 18:54发布

本帖最后由 SCREA 于 2017-6-15 22:00 编辑

MD5加密和sha加密
sha加密原理
Algorithm)又叫安全哈希加密技术,是当今世界最先近的加密算法。主要用于文件身份识别、数字签名和口令加密等。
对于明文信息A,通过SHA1算法,生成一条160位长的识别码B。且明文信息A和识别码B之间同时满足以下条件:
1、对于任意两条不同的明文信息A1、A2,其识别码B1、B2都不相同。
2、无法通过逆向算法由识别码B倒推出明文信息A。
MOONCRM的用户密码采用SHA1加密存储,即服务器上存储的只是
由用户密码生成的识别码,而用户密码本身并没有存储在服务器上。用户输入登陆口令时,系统会根据输入口令生成相应识别码并与系统中所存储的识别码进行比较,如二者一致,则认为口令正确。系统中没有存储用户原始的口令值,即使有人获得口令文件,也无法破解用户登陆密码,确保用户密码绝对安全。

MD5加密原理
Message-Digest泛指字节串(Message)的Hash变换,就是把一个任意长度的字节串变换成一定长的大整数。请注意我使用了“字节串”而不是“字符串”这个词,是因为这种变换只与字节的值有关,与字符集或编码方式无关。
  MD5将任意长度的“字节串”变换成一个128bit的大整数,并且它是一个不可逆的字符串变换算法,换句话说就是,即使你看到源程序和算法描述,也无法将一个MD5的值变换回原始的字符串,从数学原理上说,是因为原始的字符串有无穷多个,这有点象不存在反函数的数学函数。
   MD5的典型应用是对一段Message(字节串)产生fingerprint(指纹),以防止被“篡改”。举个例子,你将一段话写在一个叫 readme.txt文件中,并对这个readme.txt产生一个MD5的值并记录在案,然后你可以传播这个文件给别人,别人如果修改了文件中的任何内容,你对这个文件重新计算MD5时就会发现(两个MD5值不相同)。如果再有一个第三方的认证机构,用MD5还可以防止文件作者的“抵赖”,这就是所谓的数字签名应用。
  
MD5是一种不可逆的加密算法 安全性很高 一般在网上用作判断文件完整性
如果一个文件被修改或不完整 算出来的MD5码是和原来不一样的 所以当你害怕下的东西有病毒或木马或不完整 可以用MD5计算器算一下 再和网站上提供的值对比
关于软件很多地方有下的 软件就一个作用 把软件拖进去 然后算出MD5码 自己搜索一下吧
这个基本上是软件内部利用MD5加密导致,本身几乎无效验方法,因为MD5不可以反编译,方法写个过程,或下载MD5文件 调用MD5(PASSWORD)
MD5中的MD代表Message Digest,就是信息摘要的意思,不过这个信息摘要不是信息内容的缩写,而是根据公开的MD5算法对原信息进行数学变换后得到的一个128位(bit)的特征码。

这个特征码有如下特性,首先它不可逆,例如我有一段秘密的文字如:"My Secret Words",经算法变换后得到MD5码(b9944e9367d2e40dd1f0c4040d4daaf7),把这个码告诉其他人,他们根据这个MD5码是没有系统的方法可以知道你原来的文字是什么的。

其次,这个码具有高度的离散性,也就是说,原信息的一点点变化就会导致MD5的巨大变化,例如"ABC" MD5(902fbdd2b1df0c4f70b4a5d23525e932)和"ABC "(多了一空格)MD5(12c774468f981a9487c30773d8093561)差别非常大,而且之间没有任何关系,也就是说产生的MD5码是不可预测的。

最后由于这个码有128位那么长,所以任意信息之间具有相同MD5码的可能性非常之低,通常被认为是不可能的。

所以一般认为MD5码可以唯一地代表原信息的特征,通常用于密码的加密存储,数字签名,文件完整性验证等。
2004年,已经被山东大学的王小云教授破解了。

比如:
2345 两个相加的和再相乘 2+3=5 4+5=9 5*9=45

======================================
http://www.cnblogs.com/block123/p/4915729.html

最后,安全产品不要用开源,即使用,尽量过对应的安全测试
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
gzhuli
1楼-- · 2019-12-28 10:20
就密码学原则来讲,加密算法是应该公开的,试图用不公开的加密算法来提高安全性叫做security through obscurity,往往只是自欺欺人的做法。
安全产品也是同理,被大量专家学者审视过的开源软件,远比没人知道里面藏着多少bug的闭源软件安全。
bd7qw
2楼-- · 2019-12-28 14:37
关注帖子
takashiki
3楼-- · 2019-12-28 19:09
meirenai 发表于 2017-6-16 01:05
楼主确定md5 被破解了?


我来告诉你,从严格意义上来说,MD5已经被破解了
1、MD5是哈希算法,无法逆推到原始串。但是,居然会存在彩虹表这类玩意,不需要逆推,只需要穷举
2、
MD5是一种不可逆的加密算法 安全性很高 一般在网上用作判断文件完整性
王小云教授可以做到伪造单单依赖MD5的文件完整性,即伪造另一个文件,其文件大小、MD5值都相同,而CRC32、SHA-1均不同。而且,这个还做成了工具,伪造速度很快。

MD5作为一个安全的算法,变成了一个不安全的算法,从这个意义上来说,MD5确实已经被攻破了。不过应对策略也简单得很:加盐
还有,SHA-1算法在王小云的攻击下,也不是传说中那么可靠了,但是这个难度比MD5高太多了。

再说一句,仅仅用MD5判断文件完整性是不行的,百度 {MOD}在这方面就存在的BUG,两个大小相同MD5相同的文件只能传上去一个,另一个秒速上传下载下来确实原来那个,亲自验证,嘿嘿。
takashiki
4楼-- · 2019-12-28 23:50
meirenai 发表于 2017-6-16 01:05
楼主确定md5 被破解了?
最后由于这个码有128位那么长,所以任意信息之间具有相同MD5码的可能性非常之低,通常被认为是不可能的。
现在我们知道了,如果这个信息足够长,那么具有相同MD5码的可能性非常之高,很容易伪造出来。如果这个信息足够短,就会被彩虹表穷举出来。
gzhuli
5楼-- · 2019-12-29 02:26
 精彩回答 2  元偷偷看……
huangqi412
6楼-- · 2019-12-29 02:46
takashiki 发表于 2017-6-16 05:26
我来告诉你,从严格意义上来说,MD5已经被破解了
1、MD5是哈希算法,无法逆推到原始串。但是,居然会存在 ...

对于exe文件 实际上还是无法做到修改内容让大小和md5都相同吧  文件里很多字节不能乱改

一周热门 更多>