
ユーザーを作成しましたが...パスワードを忘れました。
mysql> 'right' で識別される 'blayo'@'%' ユーザーを作成します。
どのLinuxコマンドラインツールパスワードはmysql 5.5と同じように暗号化されていますか?
mysql> mysql.userでパスワード、ユーザーを選択します。 -----------------------------+------ - + *920018161824B14A1067A69626595E68CB8284CB |ブラヨ|
...正しいものを使用していることを確認してください
$ツール右 *920018161824B14A1067A69626595E68CB8284CB
答え1
いくつかのショート:
MySQL(-u(user)-pを追加する必要があるかもしれません):
mysql -NBe "select password('right')"
Python:
python -c 'from hashlib import sha1; print "*" + sha1(sha1("right").digest()).hexdigest().upper()'
真珠:
perl -MDigest::SHA1=sha1_hex -MDigest::SHA1=sha1 -le 'print "*". uc sha1_hex(sha1("right"))'
PHP:
php -r 'echo "*" . strtoupper(sha1(sha1("right", TRUE))). "\n";'
ルビー:
ruby -e 'require "digest/sha1"; puts "*" + Digest::SHA1.hexdigest(Digest::SHA1.digest("right")).upcase'
すべての出力:
*920018161824B14A1067A69626595E68CB8284CB
答え2
まあ、ささいな(たぶん不正行為)方法は、以下を実行することです。
mysql -NBe "select password('right')"
これはあなたのmysqlバージョンが使用するパスワードハッシュスキームを使用してパスワードを生成します。 [編集する:列名とASCIIテーブルアートを削除する-NBが追加されました。 ]
答え3
シェルを使用する別の方法:
echo -n 'right' | sha1sum | xxd -r -p |\
sha1sum | tr '[a-z]' '[A-Z]' | awk '{printf "*%s", $1}'
説明する:
echo -n
印刷時に改行なしsha1sum
最初のSHA1xxd -r -p
16進ハッシュキャンセルsha1sum
2番目のSHA1tr '[a-z]' '[A-Z]'
大文字に変換awk '{print "*" $1}'
先行追加*
詳細は:
2.と3.の間に awk '{printf "%s", $1}'
改行文字とハイフンを削除するオプションのステップを挿入できます。しかし、xxdはとにかくこれを無視します(dave_thompson_085のおかげで)。
{print "*" toupper($1)}
また、ステップ5と6を次のものに置き換えるとすぐに完了できます(dave_thompson_085のおかげで)。
答え4
ハッシュ値は sha1(sha1(password)) です。。ないから塩(これは深刻なセキュリティ欠陥です)テーブルからハッシュ値を見つける。
GNU coreutilsまたはBusyBoxのPOSIXツールとsha1(sha1(password))を使用すると、コマンドがダイジェストを16進数で印刷してバイナリに変換できる標準ツールがないsha1sum
ため、計算が面倒です。sha1sum
awk "$(printf %s 'right' | sha1sum |
sed -e 's/ .*//' -e 's/../, 0x&/g' \
-e 's/^/BEGIN {printf "%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c"/' \
-e 's/$/; exit}/')" | sha1sum
Pythonの標準ライブラリには標準ダイジェストがあるので、簡単な1行です。
printf %s 'right' |
python -c 'from hashlib import sha1; import sys; print sha1(sha1(sys.stdin.read()).digest()).hexdigest()'
または、1行にパスワードを入力してください。
python -c 'from hashlib import sha1; print sha1(sha1("right").digest()).hexdigest()'