1

PHP では、組み込みのcrypt()関数を使用していくつかのパスワード ハッシュを生成し、blowfish ハッシュを生成しています。

<?php $hash = crypt("secure password", '$2a$10$ ... salt here ... $');

ruby にはString#cryptがあることがわかりますが、得られる出力はまったく異なります (はるかに短いハッシュ)。の man ページを見ると、crypt (3)一部の Linux ディストリビューションのみが glibc にフグのサポートを追加しているため、Ruby はサポートしていないと思います。

今、私はグーグルでcrypt宝石を見つけましたが、使用している2 ^ 10の代わりに2 ^ 16サイクルを実行するようにハードコーディングされているようです. また、Ruby 1.9.3 で例外が発生します。

Crypt::Blowfish.new("abc").encrypt_block("foo")
TypeError: can't convert String into Integer
from /Users/chris/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/crypt-1.1.4/crypt/blowfish.rb:47:in `|'

PHP で生成したのと同じフグ ハッシュを Ruby で生成する方法を知っている人はいますか?

4

1 に答える 1

1

BCrypt gem は、必要なことを行います。

BCrypt::Engine.hash_secret("bob", "$2a$10$ ... salt here ...")
于 2012-07-02T08:10:58.417 に答える