データを暗号化し、SHA-1またはSHA-2を使用していることを知る必要があるプログラマがあります。残念ながら、唯一のヒントはハッシュ値を持つテーブルです。 誰かが2つの暗号化タイプをどのように区別して、どちらを使用するかを教えてください。SHA-1とSHA-2を区別する
答えて
データを暗号化し、SHA-1またはSHA-2を使用していることを知る必要があるプログラマがあります。
あなたがデータをハッシュしているということですか? SHAは暗号化アルゴリズムではなく、ハッシュアルゴリズムのファミリです。
主な区別は、長さです。 SHA-1は160ビット(20バイト)です。 SHA-2は、224〜512ビット(28〜64バイト)の形式で提供されます。 SHA-2のいくつかの切り詰められたバージョンがあるので、どれが使用されているかを正確に特定するのは難しいかもしれませんが、SHA-1よりも長くなっています。
おそらく暗号化されていないハッシュを意味します。暗号化は可逆であり、ハッシュはそうではなく、暗号化はランダム関数のようにしようとするハッシュとは対照的にランダム置換のようなものです。 SHA-1は160ビット(20バイト)ですが、SHA-2は224-512ビットの長さ(28〜32バイト)のファミリです。 16進符号化またはbase64符号化を使用すると、エンコードされた文字あたり4または6ビットが得られます。 場合によっては(パスワードハッシュなど)、ハッシュに接頭辞をつけて作成した方法に関する情報があり、ハッシュ文字列には、何を見ているかを示す$ 1 $などの特殊な接頭辞が付いてくることがあります。
余分な接頭辞を持たず、同じ長さに切り捨てられたデータを持っていて、ハッシングの前に入力について何も知らないのであれば、実用的な方法で2つを識別できるとは思いません。 SHA-1とトランケートされたSHA-2の違いを伝える能力は、それらのうちの少なくとも1つが安全な暗号機能を必要としないランダムなデータから分離できることを意味します。 私は実際に区別できる攻撃を知らない。
計算の複雑さにかかわらず、ほとんどのハッシュは他の関数からもプリイメージを持っているので、単一のハッシュがどこから来たのかを知ることはできません。
- 1. signtoolがタイムスタンプ付きのSHA2およびSHA1に失敗する
- 2. sha1証明書とsha2証明書の違いは何ですか?
- 3. SHA1からSHA2にアップグレードすると、C#アプリケーションのすべてが破損します。
- 4. クリックとマウスとの区別を区別する
- 5. アクティブレコードルビーと区別する
- 6. 複数のsha1ハッシュのSha1ハッシュ - >ファイルを識別するための安全?
- 7. SHA2 P12/pfx cert
- 8. Java Keytoolは、SHA2が指定されていてもSHA1証明書を作成します
- 9. ファイルとディレクトリを区別して区別できますか?
- 10. タップとドラッグを区別する方法
- 11. マウスクリックとタッチタップを区別する方法
- 12. 色とチャートを区別する方法
- 13. イメージビューをシングレットとスクロールで区別する
- 14. CheckBox:ボックスとラベルを区別する
- 15. CmakeはlibC++とlibstdC++を区別する
- 16. デザイナコードとランタイムコードを区別する
- 17. iOS - NSDictionaryとNSMutableDictionaryを区別する
- 18. 文書タイトルとセクションタイトルを区別する
- 19. Windowsとdllを区別する方法
- 20. lmオブジェクトとrlmオブジェクトを区別する
- 21. ipadsとiphoneを区別するビューポート
- 22. ßとssを区別するSQLクエリ
- 23. C++でフォルダとファイルを区別する
- 24. アンドロイドスマートフォンとタブレットを区別する方法
- 25. ALT + F4とタスクバークローズイベントを区別する
- 26. NTAG213とMF0ICU2を区別する
- 27. 水と土地を区別するアルゴリズム
- 28. ホットリンクとサイトのユーザーを区別する
- 29. Dashcode iPadとiPhoneブラウザを区別する
- 30. ブランチとフィーチャブランチを区別する方法