
其实, 关于md5是不是加密算法这一情况, 在程序员当中一直存在着争议, 为何呢? 这主要是鉴于在开发期间, 一般会将用户的密码进行一次或者多次md5计算, 之后再存入数据库, 所以自然而然地, 就有人把md5当作了加密算法。md5属于一种哈希算法, 而哈希算法又是摘要算法里的一种, 于计算机领域当中, 哈希算法一般是针对任意长度的数据去生成一个固定长度的校验值, 也就是所谓的“指纹”, 其主要功用是计算数据的完整性, 在理想状况下, 不同的数据会生成本质相符的唯一哈希值, 要是数据产生了变化, 那么哈希值同样会出现改变。随着行业数据沿着规模方向发展, 出现了不同的数据却能产生相同的哈希值这种情况, 于是有用sha去替代md5的举措, 然而这对于在数据库里不存储用户密码的明文, 而是存储用户密码的md5值而言, 并没有什么显著的影响。但其本质而言, md5所实施的乃是数据转换这件事情, 是将数据按从一种形式转变成为另外一种形式这般来进行改变的, 并且它是算不得是加密算法的。数据的安全性以及隐私性, 是借助密文通过加密算法予以保护的, 而明文数据用户能用密钥访问, 也能用对应的密码去访问, 换而言之加密算法这种方式是具备可逆特性的。在这之后, 加密算法所产生的密文呈现出独一无二的特性, 对于数据而言, 当运用不一样的密钥去实施加密操作时, 最终获取到的密文必然会存在差异, 并且不同内容所生成密文的长度其自身也是不尽相同的。这一情况, 无论针对的是对称加密还是非对称加密, 均毫无二致。做加密软件开发之际, 一般会借助加密算法去弄出密文, 传输之时运用哈希算法来查验密文是不是完整。哈希算法, 以及加密算法, 于安全性方面, 于可逆性方面, 于用途等方面, 是存在显著差异的, 因此,不可以将md5理解成加密算法, 并且, 也不可以把它当作加密算法来予以使用。