パスワードのハッシュ値を取得する

最終更新日: 2021年3月3日
R8 | R9

PasswordEncoderの利用

スクリプトでPasswordEncoderを利用する例

PasswordEncoder は、パスワードを作成するクラスです。ここではjuserオブジェクトのパスワードを、PasswordEncoder を使って設定するコード例を示します。
なお「環境>アプリケーション>アカウントパスワード>パスワードハッシュ化」を "BCrypt" と設定済み、とします。

var PasswordEncoderClass = Java.type("org.springframework.security.crypto.password.PasswordEncoder");
var rawPassword = "ハッシュ化前のパスワード";
var passwordEncoder = p.appctx.getBean("passwordEncoder", PasswordEncoderClass);
var encodedPassword = passwordEncoder.encode(rawPassword);
print(encodedPassword);// debug
juser.setPasswd(encodedPassword);// juserオブジェクトは事前に入手済み、と仮定しています。

PasswordEncoderによるカスタマイズを行う

PasswordEncoder をカスタマイズして、独自のパスワードハッシュ化を行うことができます。

利用できるハッシュ化アルゴリズム

「アカウント > パスワード > パスワードハッシュ化」は使われません。カスタマイズした内容が使われます。

詳細な技術資料

Wagby Developer Network > SpringSecurityの動作原理とカスタマイズ

PasswordEncoderによるカスタマイズを行わない場合

PasswordEncoder を使ったパスワードハッシュ化のカスタマイズを行っていない場合は、製品に同梱されている gethash コマンドを使って、ハッシュ値を事前に求めることができます。

BCryptへの対応

gethashコマンドは BCrypt には未対応です。BCrypt については、次のようなサイトを利用してハッシュ値を作成してください。

ハッシュ値の参考

文字列 "wagby" と "admin" について、gethash コマンドで求められた値を掲載しておきます。これらの文字列であればコマンドを使わずとも、下記の内容をそのままご利用いただけます。

文字列 "wagby" のハッシュ値

アルゴリズム
md5 ri49lYC9pPakRAjwacg7X0
sha-1 rguixRbEDEZQGhx2CJydZd2zGuE
sha-256 SfXpY49wuPzTjccA4w6zjvjvPbLwdV4zhPm3euckgvg
sha-384 Z9h2ko-3w-iFgzsHGnzloWrkmaNoNaxAGhqiPLFHxASpTl4057PLb2IBNUHD4DFB
sha-512 YdK+GSi6R6ZVlVz5cPWLKKqO5tFPls6Bg7mCjsTI4ZsO7ZQRvoDrPFgH6QWuhT8Oo7LG9CIQrot45qOiS6TRu0

文字列 "admin" のハッシュ値

アルゴリズム
md5 8icLanFnFqt3ykEeiE0vMM
sha-1 Q3fyaKd8HHlC3Y8k2KMRxgNdGps
sha-256 z6BSVrl111mZWgyZjuUlTX5DGsxP-4KUG1ZLaHh8Ghw
sha-384 DaqkGga5M3h3b9lggxJXDrRs3QJCs-1vrrPBw5aW8egAw46lrKz9EKOv42AcT0u2
sha-512 NWR4OWRSaBSwF5bVW5jZMu3DFiEU0lYzY+GNS0Kj7thOoQTWNNPjjHMRQmGT+UGgO1+nkhfmNRedNFToTF1TX0

gethashコマンドの使い方

ここでは Windows OS での利用方法を説明します。Linux/Mac OS Xで操作される場合はコンソールをお使いください。

「スタートメニュー>プログラムとファイルの検索」欄に、"cmd" と入力して実行します。(図1,図2)

図1 スタートメニュー
図2 cmdを実行する

図3に示すような、コマンドプロンプトが表示されます。

図3 コマンドプロンプト

ワンポイント

スタートメニューを経由せず、直接「コマンドプロンプト」を実行することもできます。

コマンドプロンプトが起動したら、cd コマンドでカレントフォルダを移動します。移動先は Wagbyインストールフォルダ\wagbyapp\bin です。(インストール先フォルダは適切に読み替えてください。)

図4 カレントフォルダを変える

次のようにコマンドを実行します。

gethash [パスワード] [ハッシュアルゴリズム]

例えば "admin" という文字列のハッシュ値を sha-1 アルゴリズムを使って取得する場合は次のようになります。

gethash admin sha-1
図5 コマンドの実行

指定できるハッシュ化アルゴリズム

「アカウント > パスワード > パスワードハッシュ化」と同じです。

ハッシュ値について

ハッシュ値の変換処理は不可逆変換のため、ハッシュ値から元の値を導き出すことはできません。

関連するページ