2

注:私は回避策を探しているのではなく、単純なルビーソリューションを探しています!

この質問はこの質問に似ていますが、答えありません。シェルコマンドの回避策にすぎません。

debian /etc/shadow のフォーマットと互換性のある sha512 暗号化文字列を生成したいと考えています。

以下はphpで正しい文字列を作成します:

$salt = 'fGn9LR75';
$hash = crypt('test', '$6$'.$salt);
// hash is:
// $6$fGn9LR75$YpI/vJHjEhvrYp5/eUSRinpiXdMthCxFWSEo0ktFNUaRBsA7pCWYzzmQptmnfyHno9YEJFNHYuESj3nAQmSzc1

私の知る限り、これは通常のソルト化されたbase64でエンコードされた文字列です。sha生成方法のスペックはこちら

4

1 に答える 1

4
irb(main):001:0> salt = 'fGn9LR75';
irb(main):002:0* hash = 'test'.crypt('$6$' + salt);
irb(main):003:0* hash
=> "$6$fGn9LR75$YpI/vJHjEhvrYp5/eUSRinpiXdMthCxFWSEo0ktFNUaRBsA7pCWYzzmQptmnfyHno9YEJFNHYuESj3nAQmSzc1"

crypt()SHA256/512のアルゴリズムは、単純に base64 でエンコードされたハッシュではありません。これは、並行して実行される複数のハッシュを含む、意図的にクレイジーなプロセスです。

于 2012-01-28T06:08:47.400 に答える