PHP上的md5(),crc32()和sha1()加密有什么区别?

4 php

不同之处在于它们产生的长度.

crc32()提供32位代码

sha1()给出128位代码

md5()给出160位代码

这样对吗??或者它们之间是否还有其他差异?

Mik*_* D. 13

它们各自实现不同的加密散列函数,并且每个散列函数确实生成不同大小的散列.您在此处显示的三个函数之间的主要区别在于sha1md5实际上是加密安全的.crc32(crc代表循环冗余校验)函数不是加密函数,而是用于生成将用于检查文件完整性的哈希(主要用于确定它是否在下载期间被破坏).

请注意:请不要使用md5sha1进行任何真正的加密工作(例如散列密码).这些都非常破碎(只要问evernote或使用这种旧算法烧毁的任何其他公司).而是使用php crypt()函数并使用SHA-256或SHA-512(优于256)或blowfish.并始终盐的哈希值...

  • 实际上甚至SHA-512都不适合散列密码,你应该使用慢速密钥派生函数,如`BCrypt`或`PBKDF2`.它们具有适应性成本因素,可以为未来的硬件增加. (3认同)