Digest::SHA1よりもDigest ::SHAを使用すること、またはその逆の利点はありますか?両方とも維持されているようですが、Digest::SHA1が。の存在でさえ存在する理由はわかりません。Digest::SHA
2 に答える
何もありません、Digest::SHA1
レガシーですSHA1
。のドキュメントによるとDigest::SHA1
:
2005年に、SHA-1でセキュリティ上の欠陥が特定されました。つまり、数学的な弱点が存在する可能性があり、より強力なハッシュ関数が望ましいことを示しています。Digest :: SHAモジュールは、SHAファミリーのより強力なアルゴリズムを実装します。
明確に参照していますDigest::SHA
。の実装は(のドキュメントによると、とにかく使用する必要があるものDigest::SHA
よりも少し高速です)。Digest::SHA1
Digest.pm
Algorithm Size Implementation MB/s
SHA-1 160 Digest::SHA v4.3.1 58.9
SHA-1 160 Digest::SHA1 v2.10 48.8
Digest
名前空間内のすべてのモジュールのファクトリでありDigest
、を優先Digest::SHA
しDigest::SHA1
ます。Digest::SHA1
に置き換えられたため、2回非推奨になっていると主張することもできDigest::SHA2
ます。
ここで「非推奨」という用語を実証することはおそらく有用だと思います。つまり、SHAファミリーにまだ存在するSHA1以外のハッシュには役に立たないということDigest::SHA1
です。他のディストリビューションでも、より多くの処理を実行できます。Digest:: SHA1も低速です。私の知る限り、これは引き続きサポートされており、それほど昔ではない安定したリリース:ダイジェスト-SHA1-2.13-2010年7月3日-Gisle Aas
を使用するように書かれたものDigest::SHA1::sha1
、または (愚かさのために) の"Digest::$type"->new
代わりにDigest->new($type)
必要な可能性があるものDigest::SHA1
。それ以外は、Digest::SHA
が優先され、デフォルトで に使用されますDigest->new("SHA-1")
。