[Ruby/PHP]Ruby OnRailsのdatabase_authenticatable.rb/password_digestをPHPに移行する

2012/12/18 20:15

devise / lib / devise / models / database_authenticatable.rbに
あるpassword_digestをPHPで再現する必要があったので調べました

なお
password_digestのソースは下記のとおりです

def password_digest(password)
::BCrypt::Password.create(“#{password}#{self.class.pepper}”, :cost => self.class.stretches).to_s
end

あさると下記が見つかりました
http://stackoverflow.com/questions/4795385/how-do-you-use-bcrypt-for-hashing-passwords-in-php

ここの
function blowfishCrypt($password,$cost){

$chars=’./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789′;
$salt=sprintf(‘$2a$%02d$’,$cost);
//Create a 22 character salt

for($i=0;$i<22;$i++) $salt.=$chars[rand(0,63)];
return crypt($password,$salt);
}

で再現確認できました

※なお作られる文字列は毎回かわります

 

コメントを投稿

次の HTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <img localsrc="" alt="">

コメントはまだありません。