Pythonのダイジェストアルゴリズムhashlib

参考リンク:https://www.liaoxuefeng.com/wiki/1016959663602400/1017686752491744

  我々は2つの要約ファイルを比較できるように、ダイジェスト暗号化アルゴリズムによって与えられたとしても、単一バイト、当社のメタデータの変更は、与えることを、広く変化しますので、ダイジェストアルゴリズム(とも呼ばれるハッシュアルゴリズム)は、改ざんを防止するために使用されますどうか、このファイルのうち、変更されました。

  Pythonはダイジェストアルゴリズムhashlib組み込みモジュールを提供します

MD5

  MD5ダイジェストアルゴリズムは、結果は(16進文字は4ビットだけで表すことができるように)、一般に32ビットの16進数文字列で表される、固定バイトの128ビットを生成するために、一般的に高速であります

インポートhashlib >>> 
>>> hashlib.md5 = MD5()
>>> md5.update( 'a'.encode(' UTF-8「))
>>>印刷(md5.hexdigest())
0cc175b9c0f1b6a831c399e269772661 
へ#ダイジェスト文字列を計算するためには、長すぎる、複数の要約に分けることができ、結果は同じです
>>> md5.update(「b'.encode(」UTF-8「))
>>>印刷(md5.hexdigest())
187ef4436122d1cc2f40dc2b92f0eba0 
>>> hashlib.md5( 'ab'.encode(' UTF -8 '))。hexdigest()# 別の呼び出し方法
' 187ef4436122d1cc2f40dc2b92f0eba0 "

  

SHA1

  別の共通SHA1ダイジェストアルゴリズムMD5ダイジェストとしての彼の使用は160bitバイト、通常は40ビットの16進数の文字列表現を生成しています。

 

SHA256とSHA512

  これは、MD5とSHA1ダイジェストアルゴリズムをよりも安全ですが、遅くなり、より安全なダイジェストアルゴリズム

 

  ダイジェスト機能は、要約を計算することは容易である、一方向関数であるが、文書の要約の内容によって起動防止は非常に困難であり、かつ、1ビットは、元のデータへの変更は、要約は非常に異なって生成されるします。ダイジェストアルゴリズムのすべてがあるので、しかし、無限集合は、それらの限られたセットにマッピングされているので、要約として計算された2つの完全に異なるファイルがあるかもしれないが、それは非常に、非常に困難であることを望んでいます。

  

抽象アルゴリズム

  データベースの要約へのユーザの平文パスワード

  そのアカウントを確実にするために、ユーザーのパスワードの要約の代わりに、ユーザーの平文パスワード、大幅にデータベースの漏洩リスクを向上させることができ、また長いデータベース管理状況下で安全にアクセスすることができ、これはまた、リスクのある程度であってもよいし、そのハッカーダイジェストは、データベースおよび要約に使用される生成されたパスワードと比較することができ、ユーザーは、同じ平文パスワードを取得することができ、

  共通パスワードMD5値を容易に計算することができるので、ユーザのパスワードを保存してくださいは、MD5に、それらの一般的に使用されるパスワードを計算されていない、このアプローチは、一般的にプラス」として知られ、元のパスワードに加えて、複雑な文字列によって達成されるので、塩「:

デフget_md5(パスワード):
    リターンhashlib.md5(パスワード+ 'the_salt'.encode(' UTF-8' ))hexdigest()。

  このように、ユーザのパスワードは非常に単純であっても、ハッカーは、スラストリバーテーブルの彼の把握に応じて、ユーザーの平文パスワードから撤退することはできません

  2人のユーザが単純な例に対して同じパスワードを使用する場合は、123456データベースでは、2つの同じMD5の値が2つのユーザのパスワードが同じであることを示す、格納されています。ユーザーが異なるMD5にそれを格納するために同じパスワードを使用できるようにする方法はありますか?

  私たちは、ユーザがログイン名を変更できないと仮定した場合、あなたはMD5を計算するために塩の一部として、ユーザーのログイン名を置くことができ、同じパスワードを達成するためにも、異なるストレージMD5です。

 

多くの場所でのダイジェストアルゴリズムは、アプリケーションの広い範囲を持っています。アルゴリズムの暗号化アルゴリズムを消化しないように注意を払って、(プレーンテキストは、彼らが抗要約を通じてプッシュすることはできませんので)暗号化に使用することができない、唯一の改ざん防止のために使用されますが、それは特性がユーザーのパスワードがプレーンテキストでパスワードを保存せずに検証することができるかを決定計算する一つの方法ですが可能。

おすすめ

転載: www.cnblogs.com/Gaoqiking/p/11616131.html