モジュール:ダイジェストアルゴリズム、hashlib

アルゴリズムの説明:

Pythonのhashlibは、このようなようにMD5、SHA1、およびなど、一般的なダイジェストアルゴリズムを提供します。

ダイジェストアルゴリズムそれは何ですか?ダイジェストアルゴリズムは、また、ハッシュアルゴリズム、ハッシュアルゴリズムとして知られています。これは、(典型的には16進数の文字列で表される)固定長データ列の任意の長さのデータを変換する機能を介するものです。

ダイジェストアルゴリズムによってダイジェストは、任意の長さのデータDATA固定長算出要約元のデータが改ざんされたかどうかを発見するために、ダイジェストの関数f()です。

ダイジェストアルゴリズムは、(データを)、関数は一方向関数であるダイジェストFを算出するので、容易で、データが改ざんされたかどうかを示すことができるが、逆推力によってデータを消化することは非常に困難です。また、オリジナルデータへの変更のビットを行う、完全に異なるダイジェスト計算につながります。

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

    全体の概要

    塩の概要

    ダイナミックな塩の概要

一般的な要約
インポートhashlib 
MD = hashlib.md5()   MDオブジェクトにダイジェストを得る 
md.update(B 1234 #1 バイトの抽象着信ストリングを必要と更新方法は、入力する必要があり
#1 (md.updateをバイト(パスワード、エンコード=「UTF -8」))#password 動的文字列は、同じタイプ、バイトに変換する必要がコードキャラクタを指定 
RET = md.hexdigest 方法のhexdigest hashlibを、ダイジェスト値のポイントが存在しますメモリアドレス 
RET = md.hexdigest() プラス()ダイジェスト値取得

データが大きい場合、ブロックは複数回更新()を呼び出すことができ、結果は最後に計算と同じである: 
MD5 = hashlib.md5 ()
MD = hashlib.md5()
md5.update(' どのようにMD5で使用します' 
md5.update(' Pythonのhashlib?' 
md.update(' PythonのhashlibにMD5を使用する方法?' プリント(md5.hexdigest())
 プリント(md.hexdigest()) 

打印:
d26a53750bc40b38b65a520292f69306 
d26a53750bc40b38b65a520292f69306

 

 

注意:
MD5は、アルゴリズムに属するクラスhashlibモジュールです。そこSHA224の、SHA1アルゴリズム。
更新は、着信抽象パラメータを要求するための方法のアルゴリズムに属します。
hexdigestは hashlibは、ダイジェスト値を取得するための方法です。
大量のデータが、ブロックが複数回更新()を呼び出すことができる場合、結果は、最後に計算と同じです

塩要約:
hashlib.md5(塩)
hashlib.md5 = MD(B ' エイキ'#のB、デフォルトはASCIIコードで、中国をサポートしていません 
MD1 = hashlib.md5(バイト(' アイク'、エンコード= ' UTF-を。8 ')) 中国の必要性は仕方バイトコーディング現像 
md.update(B ' 1234 ' 
md1.update(B ' 1234 ' 
RET = md.hexdigest()
RET1 = md1.hexdigest()
 プリント(RET)
 プリント(RET1)を

ダイナミックな塩:
INPUT = USR(' 自分のユーザー名を入力してください' 
MD = hashlib.md5(B ' エイキ'#のB、デフォルトはASCIIコードでは、中国をサポートしていません 
MD1 = hashlib.md5(バイト(' アイク'、エンコーディング= " UTFを-8 ')+バイト(USR、エンコーディング= ' UTF-8 ')) 塩の動的パラメータ受信 
md.updateを(B ' 1234 ' 
md1.update(B ' 1234 ' 
RET = md.hexdigest( )
RET1 = md1.hexdigest()
 印刷(RET)
印刷(RET1)
 
アプリケーション:
ユーザー名とパスワードは、ユーザーのログインに保存されています
登録
DEFの情報():
     試してみる
        info_usr = のwhile info_usr:
            F =オープン(' のuser_data '' + '、エンコーディング= 'UTF-8 'フォームで 
            f.seek(0) ファイルA +フォームを開きます、あなたは、ファイルの内容をトラバース開始位置にカーソルを移動したい場合のためのラインF:
                ユーザ名 =入力(自分のユーザー名を入力してください:
                パスワード =入力(" あなたのパスワードを入力してください。
            ' 
                Usrの、PWD = line.split(' | ' IF usr.strip()== username.strip():
                     印刷' アカウントが登録されている、再入力してください" それ以外
                    MD5 = hashlib.md5()
                    md5.update(バイト(パスワード、エンコード = ' UTF-8。' ))
                    info_password = md5.hexdigest()
                    f.write(ユーザー名 + ' | ' 
                    f.write(' N- \%のS '%のinfo_password)
                    info_usr = Falseの
                    f.close()
    を除くとValueError: ファイルスローを閉じた後は、成功の登録を求めるメッセージが表示
        印刷' 登録が成功' 

#のログイン
DEF ロンジンを():
    I = 3
     しばらく I> 0:
        I - = 1。
        オープン(と' user_dataの' F AS):
            ユーザ名 =入力(' ユーザ名を入力します。' 
            パスワード = INPUT(' パスワードを入力します。' のためのラインF:
                MD5 = hashlib.md5() バイト(パスワード、エンコーディングmd5.update = 'UTF-8 ' ))
                info_password = md5.hexdigest()
                USR、PWD line.strip =()スプリット(' | ' IF usr.strip()==ユーザ名 pwd.strip()== info_password:
                 印刷' ログイン成功'BREAK 
            印刷ログインに失敗しました、再度ログインしてください、だけでなく、チャンスを%s I)
     印刷アカウントがロックされている

#のテスト 
LIS = [
     ログイン登録
] 

のためのでは列挙(LIS):
     印刷(I)
 中に真:
     試してみる
        SELECT = INT(入力(選択番号を入力するか、ユーザ登録してください。"))
         IF SELECTの== 0:
            ロンジン()
            BREAK 
        のelif SELECT 1 ==。 
            インフォ()
            BREAK 
        他に印刷" 正しいシリアル番号を入力してください" を除く例外:
         印刷" 正しいシリアル番号を入力してください" 


の知識ポイント:hashlibの
            例外処理     
            ファイルの読み込みと書き込みの
バグを:ファイルアクセスのアカウント名とパスワードとして、ユーザ名とパスワードのみの最後の行を確認することができますので

 

おすすめ

転載: www.cnblogs.com/aizhinong/p/11512838.html