我需要通过 MYSQL 查询和 PHP 检查 sha512 加密中的数据
我可以像这样通过 md5 做到这一点:
SELECT * FROM text WHERE md5(id) = '$id'
但是,在 sha512 中呢?
问候
mysql 5.5+
SELECT * FROM text WHERE SHA2(id, 512) = '$id'
计算 SHA-2 系列哈希函数(SHA-224、SHA-256、SHA-384 和 SHA-512)。第一个参数是要散列的明文字符串。第二个参数表示结果所需的位长度,其值必须为 224、256、384、512 或 0(相当于 256)。如果任一参数为 NULL 或哈希长度不是允许值之一,则返回值为 NULL。否则,函数结果是包含所需位数的哈希值。请参阅本节开头有关有效存储哈希值的注释。
返回值是连接字符集中的非二进制字符串。
mysql> SELECT SHA2('abc', 224);
-> '23097d223405d8228642a477bda255b32aadbce4bda0b3f7e36c9da7'
此功能仅在 MySQL 已配置 SSL 支持时有效。请参见第 6.3.9 节,“使用 SSL 进行安全连接”。
SHA2() 可以被认为在密码学上比 MD5() 或 SHA1() 更安全。