序文プログラムでは、MD5 sha1 など、多くの暗号化アルゴリズムをよく見かけます。今日は、これらの暗号化アルゴリズムについて学びます。理解する前に、hashlib というモジュールについて知っておく必要があります。これは、現在 Python で文字の暗号化を提供しているモジュールです。暗号化する文字タイプはバイナリ エンコーディングであるため、文字列を直接暗号化するとエラーが発生します。
hashlib 内のすべてのハッシュ アルゴリズムのセットを取得するには、次の 2 つの方法のいずれかを使用できます。
以下では、一般的に使用される集中アルゴリズムを選択して説明します。 1. MD5MD5 は Message-Digest Algorithm 5 の略で、情報伝送の整合性と一貫性を確保するために使用されます。コンピュータで広く使われているハッシュアルゴリズム(要約アルゴリズム、ハッシュアルゴリズムとも訳される)の一つで、主流のプログラミング言語ではMD5が一般的に実装されています。ハッシュ アルゴリズムの基本原理は、データ (漢字など) を別の固定長の値に変換することです。MD5 の前身には、MD2、MD3、MD4 があります。 MD5 アルゴリズムには次の特性があります。 1. 圧縮: 任意の長さのデータに対して、計算された MD5 値の長さは固定されます。 2. 計算が簡単: 元のデータから MD5 値を計算するのは簡単です。 3. 改ざん防止: 元のデータに変更を加えると、たとえ 1 バイトだけ変更されたとしても、取得される MD5 値に大きな違いが生じます。 4. 強力な衝突防止: 元のデータとその MD5 値がわかっている場合、同じ MD5 値を持つデータ (つまり、偽造されたデータ) を見つけることは非常に困難です。 MD5 の機能は、デジタル署名ソフトウェアを使用して秘密鍵に署名する前に、大量の情報を機密形式に「圧縮」することです (つまり、任意の長さのバイト文字列を特定の長さの 16 進数字文字列に変換します)。 MD5 は最も一般的なダイジェスト アルゴリズムです。非常に高速で、通常は 32 ビットの 16 進文字列で表される固定の 128 ビット バイトの結果を生成します。
2. シャ1セキュア ハッシュ アルゴリズム SHA1 の結果は 160 ビットで、通常は 40 ビットの 16 進文字列で表されます。
3. sha224セキュアハッシュアルゴリズム
4. sha256セキュアハッシュアルゴリズム
5. sha384セキュアハッシュアルゴリズム
6. sha512セキュアハッシュアルゴリズム
7. 高度な暗号化上記の暗号化アルゴリズムは依然として非常に強力ですが、データベースの衝突によって元に戻される可能性があるという欠陥がまだあります。したがって、暗号化する前に暗号化アルゴリズムにカスタム キーを追加する必要があります。
要約するさて、今日はここまでです。主にmd5、sha1、sha224、sha256、sha384、sha512、高度な暗号化などの集中アルゴリズムを紹介しました。各アルゴリズムの特徴と使い方を簡単に紹介しました。次回の盛り上がりをお楽しみに! |
<<: Java プログラミング スキル - データ構造とアルゴリズム「ソート アルゴリズムの分類と紹介」
>>: 検討する価値がある: 197 億ドル、2021 年のマイクロソフトの AI 変革の道筋
デジタル ツインは、物理世界とデジタル世界をつなぐため、常に興味深いものです。将来的には、すべてのも...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
量子プロセッサは最先端の研究テーマです。世界トップクラスの研究室や企業の研究機関が常に新たな進歩を遂...
[[258103]]テンセントテクノロジーニュース:フォーブスの寄稿者であるスティーブ・ウィルクス氏...
建国記念日の休日中は家にいて、Google カンファレンスを視聴しました。これらの製品のいくつかを見...
導入今日は、Java プログラマーとして人工知能の分野に素早く参入する方法について説明します。現在、...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
単純なスペルミスや単語の誤用によって会話ボットの応答が変わってしまう可能性がありますが、人間のエージ...
近年、人工知能(AI)は急速に発展し、さまざまな分野で画期的な進歩を遂げています。中国の著名な学者、...
[[219896]]現在、人工知能 (AI) と機械学習 (ML) ほど注目されているテクノロジーは...
少し前、ニューヨーク・タイムズ紙は、OpenAI が自社のコンテンツを人工知能開発のために違法に使用...