パスワードのハッシュ値を取得する
最終更新日: 2021年1月29日
R8 | R9
PasswordEncoder は、パスワードを作成するクラスです。ここではjuserオブジェクトのパスワードを、PasswordEncoder を使って設定するコード例を示します。
PasswordEncoder をカスタマイズして、独自のパスワードハッシュ化を行うことができます。8.2.2
「アカウント > パスワード > パスワードハッシュ化」は使われません。カスタマイズした内容が使われます。
R8.2.1 までの Wagby をご利用、または R8.2.2 以降の Wagby でも PasswordEncoder を使ったパスワードハッシュ化のカスタマイズを行っていない場合は、製品に同梱されている gethash コマンドを使って、ハッシュ値を事前に求めることができます。
gethashコマンドは BCrypt には未対応です。BCrypt については、次のようなサイトを利用してハッシュ値を作成してください。
文字列 "wagby" と "admin" について、gethash コマンドで求められた値を掲載しておきます。これらの文字列であればコマンドを使わずとも、下記の内容をそのままご利用いただけます。
ここでは Windows OS での利用方法を説明します。Linux/Mac OS Xで操作される場合はコンソールをお使いください。
「スタートメニュー>プログラムとファイルの検索」欄に、"cmd" と入力して実行します。(図1,図2)
図3に示すような、コマンドプロンプトが表示されます。
スタートメニューを経由せず、直接「コマンドプロンプト」を実行することもできます。
コマンドプロンプトが起動したら、cd コマンドでカレントフォルダを移動します。移動先は Wagbyインストールフォルダ\wagbyapp\bin です。(インストール先フォルダは適切に読み替えてください。)
次のようにコマンドを実行します。
例えば "admin" という文字列のハッシュ値を sha-1 アルゴリズムを使って取得する場合は次のようになります。
「アカウント > パスワード > パスワードハッシュ化」と同じです。
ハッシュ値の変換処理は不可逆変換のため、ハッシュ値から元の値を導き出すことはできません。
PasswordEncoderの利用
スクリプトで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によるカスタマイズを行わない場合
BCryptへの対応8.3.0
ハッシュ値の参考
文字列 "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コマンドの使い方
ワンポイント
gethash [パスワード] [ハッシュアルゴリズム]
gethash admin sha-1
指定できるハッシュ化アルゴリズム
ハッシュ値について
関連するページ