Python 暗号化および復号化モジュール hashlib の 7 つの暗号化アルゴリズムの一覧

Python 暗号化および復号化モジュール hashlib の 7 つの暗号化アルゴリズムの一覧

[[393258]]

序文

プログラムでは、MD5 sha1 など、多くの暗号化アルゴリズムをよく見かけます。今日は、これらの暗号化アルゴリズムについて学びます。理解する前に、hashlib というモジュールについて知っておく必要があります。これは、現在 Python で文字の暗号化を提供しているモジュールです。暗号化する文字タイプはバイナリ エンコーディングであるため、文字列を直接暗号化するとエラーが発生します。

  1. ハッシュライブラリをインポートする
  2. string = '90年代の意地悪な少年'  
  3. #エンコードを使用して変換する
  4. sha1 = ハッシュライブラリ.sha1()
  5. sha1.update (文字列.encode( 'utf-8' ))
  6. res = sha1.hexdigest()
  7. print( "エンコード変換結果を使用して sha1 暗号化: " , res)
  8. #バイトを使用してバイナリに変換する
  9. sha1 = ハッシュライブラリ.sha1()
  10. sha1.update (バイト(文字列、エンコーディング= 'utf-8' ))
  11. res = sha1.hexdigest()
  12. print( "byteを使用したsha1変換の結果:" , res)

hashlib 内のすべてのハッシュ アルゴリズムのセットを取得するには、次の 2 つの方法のいずれかを使用できます。

  1. ハッシュライブラリをインポートする
  2. a=hashlib.algorithms_available
  3. b=hashlib.algorithms_guaranteed
  4. 印刷(a)
  5. 印刷(b)

以下では、一般的に使用される集中アルゴリズムを選択して説明します。

1. MD5

MD5 は 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 ビット バイトの結果を生成します。

  1. ハッシュライブラリをインポートする
  2. string = '90年代の意地悪な少年'  
  3. md5 = ハッシュライブラリ.md5()
  4. md5.update (string.encode( 'utf-8' ))#トランスコーディング、更新のデータはバイト型である必要があります
  5. res = md5.hexdigest() #文字の要約情報を返します
  6. print(md5.digest())#バイトサマリー情報を返します
  7. print( "md5暗号化結果:" , res)

2. シャ1

セキュア ハッシュ アルゴリズム SHA1 の結果は 160 ビットで、通常は 40 ビットの 16 進文字列で表されます。

  1. ハッシュライブラリをインポートする
  2. string = '90年代の意地悪な少年'  
  3. sha1 = ハッシュライブラリ.sha1()
  4. sha1.update (文字列.encode( 'utf-8' ))
  5. res = sha1.hexdigest()
  6. print( "sha1暗号化結果:" , res)

3. sha224

セキュアハッシュアルゴリズム

  1. ハッシュライブラリをインポートする
  2. string = '90年代の意地悪な少年'  
  3. sha224 = ハッシュライブラリ.sha224()
  4. sha224.update (文字列.encode( 'utf-8' ))
  5. res = sha224.hexdigest()
  6. print( "sha224暗号化結果: " ,res)

4. sha256

セキュアハッシュアルゴリズム

  1. ハッシュライブラリをインポートする
  2. string = '90年代の意地悪な少年'  
  3. sha256 = ハッシュライブラリ.sha256()
  4. sha256.update (文字列.encode( 'utf-8' ))
  5. res = sha256.hexdigest()
  6. print( "sha256暗号化結果: " ,res)

5. sha384

セキュアハッシュアルゴリズム

  1. ハッシュライブラリをインポートする
  2. string = '90年代の意地悪な少年'  
  3. sha384 = ハッシュライブラリ.sha384()
  4. sha384.update (文字列.encode( 'utf-8' ))
  5. res = sha384.hexdigest()
  6. print( "sha384暗号化結果: " ,res)

6. sha512

セキュアハッシュアルゴリズム

  1. ハッシュライブラリをインポートする
  2. string = '90年代の意地悪な少年'  
  3. sha512 = ハッシュライブラリ.sha512()
  4. sha512.update (文字列.encode( 'utf-8' ))
  5. res = sha512.hexdigest()
  6. print( "sha512暗号化結果: " ,res)

7. 高度な暗号化

上記の暗号化アルゴリズムは依然として非常に強力ですが、データベースの衝突によって元に戻される可能性があるという欠陥がまだあります。したがって、暗号化する前に暗号化アルゴリズムにカスタム キーを追加する必要があります。

  1. md5 = ハッシュライブラリ.md5()
  2. md5.update ( 'md5'.encode ( 'utf-8' ))
  3. res = md5.hexdigest()
  4. print( "通常の暗号化:" ,res)
  5. md51 = hashlib.md5(b 'md512' ) です。
  6. md51.update ( 'md51'.encode ( 'utf-8' ))
  7. res = md51.hexdigest()
  8. print( "キーを使用して暗号化されました:" , res)

要約する

さて、今日はここまでです。主にmd5、sha1、sha224、sha256、sha384、sha512、高度な暗号化などの集中アルゴリズムを紹介しました。各アルゴリズムの特徴と使い方を簡単に紹介しました。次回の盛り上がりをお楽しみに!

<<:  Java プログラミング スキル - データ構造とアルゴリズム「ソート アルゴリズムの分類と紹介」

>>:  検討する価値がある: 197 億ドル、2021 年のマイクロソフトの AI 変革の道筋

ブログ    
ブログ    
ブログ    

推薦する

GPT-4.5 と同等のコードインタープリター! GPT-5をトレーニングせずに、OpenAIは依然としてAGIに向けて競争している

先週、シリコンバレーのスタートアップオタクや研究者が更新するポッドキャスト「Latent Space...

AIでAIを守る、次世代のAIベースのサイバー脅威ソリューション

多くの関係者は、AI が「悪」の力にもなり得るという事実を受け入れ始めています。関連する海外メディア...

人工知能について知っておくべきことすべて

人工知能とは何でしょうか? この質問に対する答えは、誰に尋ねるかによって異なります。 1950 年代...

AI人材が500万人不足!文部省、高等職業教育に人工知能専攻を追加

教育部は最近、浙江大学を含む35の大学の学部課程に人工知能専攻科目を追加したことに続き、大学の職業教...

...

フェイフェイ・リーのチームはディープラーニングの「遊び場」を作った。AIも独自に進化しており、考えてみると恐ろしいことだ。

[[427578]]動物の知能は、環境と相互作用するにつれて、その体の形に合わせて進化します。例え...

AIの次の目的地:リアルタイムサービス

リアルタイムサービスの波が徐々に私たちの日常生活に浸透するにつれ、コンピューティングインフラストラク...

事例 | 人工知能はヘルスケアの未来をどう変えるのか?

人工知能はこれらすべてを変え、私たちにとって物事をより簡単にしてくれます。 それは、私たちが交流し、...

...

AIビッグモデルオープンソースヒーロー!ザッカーバーグ氏はLLaMAリークについて議会から質問を受けた。「慣れている」

ザッカーバーグ氏は最近また大きなトラブルに巻き込まれた。リチャード・ブルーメンソール議員(プライバシ...

テクノロジーリーダーはAIGCの長所と短所をどう評価しているか

AIGC は、現代の偉大な技術的進歩の 1 つとして広く認められています。 OpenAI の Cha...

CAPとPaxosコンセンサスアルゴリズムについての簡単な説明

CAPとはCAP理論についてはすでに多くの背景情報が語られているので、ここでは詳しくは触れません。ど...

ロシアのロボット宇宙飛行士が3Dプリントされた骨組織サンプルを持って地球に帰還

ロシア衛星ネットワークによると、最近、ロシアの「3Dバイオプリンティングソリューションズ」社のマネー...

中国科学院のチームは、最初のLLMモデル圧縮レビューを発表しました。剪定、知識蒸留、量子化技術の詳細な議論です。

最近、大規模言語モデル (LLM) はさまざまなタスクで優れたパフォーマンスを示しています。しかし、...

IoTとAIのトレンドが今日のビジネスに及ぼす影響

IoT と AI の誇大宣伝サイクルは、企業が大きな価値を認識し始める段階まで進んでいます。 IoT...