2016-03-22 12 views
0


プレーンテキストパスワードをSHA256 Base64のパスワードに置き換える必要があります。 明らかに、データベース関数によって生成されたハッシュは、アプリケーションによって使用されるハッシュと一致しません。例えば:私のアプリケーションは、ハッシュを生成するために、この機能を使用しています。MariaDBでSHA-256パスワードを生成

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

を今、データベースと同じパスワード:あなたが見ることができるように

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

それが一致していませんが!どんな助け?
私のDBバージョン:Serverバージョン:10.0.23-MariaDB MariaDBサーバー

答えて

1

echo -n "admin" | openssl dgst -sha256 -binary | openssl base64から-binaryを削除し、あなたが同じ結果を得ることができます。

-binary sha256文字列の実際のバイナリデータを返します。希望するものがある場合は、結果をSHA2('admin',256)からバイナリに変換してからTO_BASE64を適用する必要があります。

+2

したいハッシュを取得するための正確なクエリが選択TO_BASE64(UNHEX(SHA2(「管理者」、256)))この答えはhttp://stackoverflow.com/ SHA2がどのように機能するかについて、もう少し情報を提供していますa/22121627/947240 – dMcNavish

+0

ありがとうございました。 –

1
echo -n "admin" | openssl dgst -sha256 | awk '{ print $2; }' | openssl base64 
+0

将来の読者のために説明を追加することを検討する必要があります – ADyson