【发布时间】:2018-11-27 14:28:44
【问题描述】:
我以前可以通过两次 sha1 运行我的密码来创建与 MySQL 兼容的密码,但似乎这在 MySQL 8 中不起作用。
MySQL 现在似乎在使用这些密码插件。因此语法是(在 JS 中):
const createUserSql = `CREATE USER ${db.escapeValue(agency.login)} IDENTIFIED WITH mysql_native_password BY ${db.escapeValue(passwordHash)};`;
我想在 Node.js 中创建适用于 MySQL 的密码。我知道我可以只使用纯文本密码并让 MySQL 对其进行哈希处理,但我正在将此 SQL 打印到终端并且我不希望密码可见,所以我想对它们进行预哈希处理。
什么算法适用于 MySQL 8?我愿意使用任何内置的密码插件。
sha256_password 听起来不错,但我不认为它是一个直接的 sha256 哈希,听起来它内置了盐,所以我不确定如何在 Node.js 中创建一个。
MySQL PASSWORD() 函数也消失了。我真的不想用SELECT PASSWORD(:plainTextPass) 来散列我的密码,但现在这甚至不是一个选择。
【问题讨论】: