Pebble's Diary

プログラマーの作業メモ

ruby BCryptダイジェスト

BCryptのrawハッシュ値(データベースのpassword_digestに入る文字列)は以下の4つを$で区切った文字列である。
@version, @cost, @salt, @hash
例えば、
"$2a$10$PqSI0YWw/JHk2zKWRF1ol.5pRtgJKPsJqJa8pvIn4IzatuxY.SPmu"
をsplit('$')すると
["", "2a", "10", "PqSI0YWw/JHk2zKWRF1ol.5pRtgJKPsJqJa8pvIn4IzatuxY.SPmu"]
となるので、
@version=""
@cost="2a"
@salt="10"
@hash="PqSI0YWw/JHk2zKWRF1ol.5pRtgJKPsJqJa8pvIn4IzatuxY.SPmu"
となる。