使用 MariaDB 生成 SHA-256 密码

Generate SHA-256 passwords with MariaDB


我需要用 SHA256 Base64 密码替换一些纯文本密码。 显然,数据库函数生成的哈希值与应用程序使用的哈希值不匹配。例如:我的应用程序使用此函数生成哈希:

$ echo -n "admin" | openssl dgst -sha256 -binary | openssl base64
jGl25bVBBBW96Qi9Te4V37Fnqchz/Eu4qB9vKrRIqRg=

现在,与数据库相同的密码:

select TO_BASE64(SHA2('admin',256));
OGM2OTc2ZTViNTQxMDQxNWJkZTkwOGJkNGRlZTE1ZGZiMTY3YTljODczZmM0YmI4YTgxZjZmMmFiNDQ4YTkxOA== 

如您所见,不匹配!有什么帮助吗?
我的数据库版本:服务器版本:10.0.23-MariaDB MariaDB Server

echo -n "admin" | openssl dgst -sha256 -binary | openssl base64 中删除 -binary,您将得到相同的结果。

with -binary 它 returns sha256 字符串的实际二进制数据,如果那是你想要的,你必须将结果从 SHA2('admin',256) 转换为二进制然后应用 TO_BASE64 到它。

echo -n "admin" | openssl dgst -sha256 | awk '{ print ; }' | openssl base64