MD5加密(一行一个)
MD5加密方式:
MD5加密结果
MD5算法
md5的全称是md5信息摘要算法(英文:ip Message-Digest Algorithm ),一种被广泛使用的密码散列函数,可以产生一个128位(16字节,1字节8位)的散列值(常见的是用32位的16进制表示,比如:21232f297a57a5a743894a0e4a801fc3),用于确保信息传输的完整一致。
MD5加密原理
md5将整个文件当做一个大文本信息,通过不可逆的字符串变换算法,产生一个唯一的MD5信息摘要。文件的md5类似于人的指纹,在世界上是独立无二的,如果任何人对文件做了任何改动,其md5加密的值也就是对应的“数字指纹”都会发生变化。
对MD5算法简要的叙述可以为:MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。
md5与对称和非对称加密算法不同,这两种加密是防止信息被窃取,而摘要算法的目标是用于证明原文的完整性。
MD5加密特性
1、不可逆
没有系统有办法知道md5原来的内容是什么。所以,原则上来说MD5加密是无法破解的。网上的MD5破解之所以能破解,采用的是密文对比法,就是存储非常多的加密密文到数据库,之后用你的密文来对比库中是否存在相同的密文,如果存在就破解了,如果不存在就破解不了。
2、具有高度的离散性
md5码具有高度的散列性,没有规律可循,哪怕原信息只有一点点的变化,比如多个空格,那么就会导致md5发生巨大变化,也可以说产生的md5码是不可预测的。
3、压缩性
任意长度的数据,经过md5加密算出的md5值的长度都是固定的。
4、弱碰撞性
已知明文和其md5加密的密文,想找到一个具有相同的md5密文(即伪造数据)是非常困难的。不同字符串的MD5可能相同,但这种可能性非常非常小。MD5之所以很难被反向破译,其原因就在于,同样的MD5密文对应着无数种明文的可能,也就是说,存在多个字符串或者文件其MD5密文相同的情况,这种现象叫做“碰撞”。由于MD5的长度只有128比特(bit)=16字节(byte),那么一共就存在2^128=3.402823669e+38种可能,而字符串的长度却可以远不止128Bit,所以一定存在不同的字符串,他们的MD5是一样的。不过用于一般的密码加密不会出现“碰撞”现象。