MySQL 安全随机字符串生成器

Chr*_*nch 6 mysql mysql-5 security encryption

我希望为 MySQL 中的密码重置生成一个加密安全的字符串。我知道我可以在 PHP 的应用程序级别执行此操作;但这需要我的许多客户可能没有的 OpenSSL 扩展。

如果我能以一种广泛可用的安全方式在 MySQL 5 中做到这一点,那将是理想的。这可能吗?

注意:这是为了生成密码重置的安全令牌。它与安全连接没有任何关系,因此使用 https 不是解决方案。

Tim*_*ner 4

mySQL 中有许多可用的加密方法。

如果您需要双向加密,您可以使用aes_encrypt附带的aes_decrypt

如果您只需要一个安全哈希那么您可以使用sha2

以下语句可以获得与以下类似的结果openssl_random_pseudo_bytes

SELECT HEX(SHA2(CONCAT(NOW(), RAND(), UUID()), 512));
Run Code Online (Sandbox Code Playgroud)

上面的语句将其与和 aNOW()连接起来,然后对结果执行 512 位加密,然后将其转换为RAND()UUID()SHA2()HEX()