我需要用 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服务器
答案 0 :(得分:3)
从#SearchField {
visibility:hidden;
}
移除 -binary ,您将获得相同的结果。
使用echo -n "admin" | openssl dgst -sha256 -binary | openssl base64
它返回sha256字符串的实际二进制数据,如果这是你想要的,你必须将结果从-binary
转换为二进制,然后将SHA2('admin',256)
应用于它。
答案 1 :(得分:1)
echo -n "admin" | openssl dgst -sha256 | awk '{ print $2; }' | openssl base64