Pythonによるhash値の生成
一、紹介
Pythonでユーザーが入力したパスワードやその他のコンテンツを暗号化する必要がある場合は、hash値を生成するのが優先です.Pythonでは、-crypt-hashlibの2つのモジュールを使用できます.
二、crypt
(一)cryptの主な方法と定数
名前
を選択します.
説明
crypt(…)
方法
指定したコンテンツをhash暗号化する
methods(…)
方法
使用可能な暗号化アルゴリズムを返します
mksalt(…)
方法
暗号化アルゴリズムに基づいてsaltを生成する
methods(…)
方法
使用可能な暗号化アルゴリズムのリストを返します
METHOD_MD5
定数
md 5暗号化アルゴリズム
METHOD_SHA256
定数
sha 256暗号化アルゴリズム
METHOD_SHA512
定数
sha 512暗号化アルゴリズム
(二)使用説明と例
cryptを使用します.crypt(...)hash暗号化を行う場合は、-暗号化コンテンツ-saltの2つのパラメータが必要です.
saltを特に指定しないとcryptが呼び出される.mksalt(...)saltを生成する
特定の暗号化アルゴリズムでsaltを生成するには、次のコマンドを使用します.
次に、データ暗号化を行います.
三、hashlib
(一)hashlibの主な方法と定数
名前
説明
md5(…)
md 5アルゴリズムによる暗号化
sha1(…)
sha 1アルゴリズムによる暗号化
sha224(…)
sha 224アルゴリズムによる暗号化
sha256(…)
sha 256アルゴリズムによる暗号化
sha384(…)
sha 384アルゴリズムによる暗号化
sha512(…)
sha 512アルゴリズムによる暗号化
**(二)Hashオブジェクト特有の方法
名前
説明
update(arg)
特殊暗号アルゴリズムが指定されたHashオブジェクトを繰り返し利用して
digest(…)
暗号化されたコンテンツを文字で返す
hexdigest(…)
暗号化されたコンテンツを16進数で返す
copy(…)
Hashオブジェクトを再利用する目的で、Hashオブジェクトをクローンします.
(三)例
1.hashlibメソッドを直接使用する
2.Hashオブジェクトを直接使用する方法
Pythonでユーザーが入力したパスワードやその他のコンテンツを暗号化する必要がある場合は、hash値を生成するのが優先です.Pythonでは、-crypt-hashlibの2つのモジュールを使用できます.
二、crypt
(一)cryptの主な方法と定数
名前
を選択します.
説明
crypt(…)
方法
指定したコンテンツをhash暗号化する
methods(…)
方法
使用可能な暗号化アルゴリズムを返します
mksalt(…)
方法
暗号化アルゴリズムに基づいてsaltを生成する
methods(…)
方法
使用可能な暗号化アルゴリズムのリストを返します
METHOD_MD5
定数
md 5暗号化アルゴリズム
METHOD_SHA256
定数
sha 256暗号化アルゴリズム
METHOD_SHA512
定数
sha 512暗号化アルゴリズム
(二)使用説明と例
cryptを使用します.crypt(...)hash暗号化を行う場合は、-暗号化コンテンツ-saltの2つのパラメータが必要です.
saltを特に指定しないとcryptが呼び出される.mksalt(...)saltを生成する
特定の暗号化アルゴリズムでsaltを生成するには、次のコマンドを使用します.
>>>salt = crypt.mksalt(crypt.METHOD_SHA512)
>>> salt
'$6$s8Q3eNP6urKZb3AK'
次に、データ暗号化を行います.
>>> hash = crypt.crypt("helloworld",salt)
>>> hash
'$6$s8Q3eNP6urKZb3AK$L0O5cqHRU.1f170bV2KrjF3LkLL54So442TqUIsk.wYtCtOSD4Tyt./fj6W6Y.EzrbNm00grA4yPPhXGya2ie1'
三、hashlib
(一)hashlibの主な方法と定数
名前
説明
md5(…)
md 5アルゴリズムによる暗号化
sha1(…)
sha 1アルゴリズムによる暗号化
sha224(…)
sha 224アルゴリズムによる暗号化
sha256(…)
sha 256アルゴリズムによる暗号化
sha384(…)
sha 384アルゴリズムによる暗号化
sha512(…)
sha 512アルゴリズムによる暗号化
**(二)Hashオブジェクト特有の方法
hashlib
を使用してHashオブジェクトを生成すると、このHashオブジェクトには次の方法が含まれます.名前
説明
update(arg)
特殊暗号アルゴリズムが指定されたHashオブジェクトを繰り返し利用して
arg
を暗号化することができるdigest(…)
暗号化されたコンテンツを文字で返す
hexdigest(…)
暗号化されたコンテンツを16進数で返す
copy(…)
Hashオブジェクトを再利用する目的で、Hashオブジェクトをクローンします.
(三)例
1.hashlibメソッドを直接使用する
>>> hashlib.sha224("Nobody inspects the spammish repetition")
@ 0x7f99432c5b28>
>>> hashlib.sha224("Nobody inspects the spammish repetition").hexdigest()
'a4337bc45a8fc544c03f52dc550cd6e1e87021bc896588bd79e901e2'
2.Hashオブジェクトを直接使用する方法
>>> m = hashlib.md5()
>>> m
>>> m.update("Nobody inspects")
>>> m.digest()
'>\xf7)\xcc\xf0\xccV\x07\x9c\xa5F\xd5\x80\x83\xdc\x12'
>>> m.update(" the spammish repetition")
>>> m.digest()
'\xbbd\x9c\x83\xdd\x1e\xa5\xc9\xd9\xde\xc9\xa1\x8d\xf0\xff\xe9'
>>> m.hexdigest()
'bb649c83dd1ea5c9d9dec9a18df0ffe9'