bcrypt - Wikipedia

bcrypt hash string は下記のようなフォーマット。

$2<a/b/x/y>$[cost]$[22 character salt][31 character hash]

例えば:

$2a$10$N9qo8uLOickgx2ZMRZoMyeIjZAgcfl7p92ldGxad68LJZdL17lhWy
\__/\/ \____________________/\_____________________________/
Alg Cost      Salt                        Hash

アルゴリズムの種類

  • $1$: MD5-based crypt (‘md5crypt’)
  • $2$: Blowfish-based crypt (‘bcrypt’)
  • $sha1$: SHA-1-based crypt (‘sha1crypt’)
  • $5$: SHA-256-based crypt (‘sha256crypt’)
  • $6$: SHA-512-based crypt (‘sha512crypt’)

Ruby で SHA512 ハッシュ文字列生成

require 'unix_crypt'

passwd   = "theplaintextpassword"
salt     = rand(36**16).to_s(36)
hashpass = UnixCrypt::SHA512.build(passwd, salt)

ref. ChefTips: SALT付きSHA-512でパスワードのshadow hashを生成する - Qiita