MD5加密和sha加密

sha加密原理
Algorithm)又叫安全哈希加密技术,是当今世界最早近的加密算法。主要用于文件身份识别、数字签名和口令加密等。 对于明文信息A,经过SHA1算法,生成一条160位长的识别码B。且明文信息A和识别码B之间同时知足如下条件: 一、对于任意两条不一样的明文信息A一、A2,其识别码B一、B2都不相同。 二、没法经过逆向算法由识别码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