Pythonの一般的な暗号化モジュール(hashlib、混乱hashlibの塩、HMAC)

1、ハッシュ

2、HMAC

 

hashlibモジュール

hashlibのPythonはモジュールを提供し、ハッシュアルゴリズムは、送信された値を暗号化することができます

>>> dir(hashlib)
['__all__', '__builtin_constructor_cache', '__builtins__', '__cached__', '__doc__', '__file__', '__get_builtin_constructor', '__loader__', '__name__', '__package__', '__spec__', '_hashlib', 'algorithms_available', 'algorithms_guaranteed', 'blake2b', 'blake2s', 'md5', 'new', 'pbkdf2_hmac', 'scrypt', 'sha1', 'sha224', 'sha256', 'sha384', 'sha3_224', 'sha3_256', 'sha3_384', 'sha3_512', 'sha512', 'shake_128', 'shake_256']
>>>

>>>ヘルプ(hashlib.md5)
組み込み関数openssl_md5モジュール_hashlibでのヘルプ:

openssl_md5(...)は、
    MD5ハッシュオブジェクトを返します。必要に応じて文字列で初期化

>>>

 

内蔵の機能モジュール_hashlib openssl_md5ヘルプ:

openssl_md5(...)は、MD5ハッシュオブジェクトを返します。

文字列を選択することができます

>>>

 

:我々は唯一のMD5暗号化アルゴリズムのデモを使用しますか

MD5ベースの暗号化:

import hashlib   #导入模块

passwd = "redhat"   #密码字符
md5passwd = hashlib.md5()        #初始化MD5  
md5passwd.update(passwd.encode('utf-8'))      #hashlib只能接受比特b数据,这里先转码#输出散列值

print(md5passwd.hexdigest())        #输出散列值,也就是转换成16进制字符串

 

のMD5との混同の塩:

import hashlib   #导入模块

passwd = "redhat"   #密码字符
salt = "^*F&DB#@%&)(*%$#@"

md5passwd = hashlib.md5()
md5passwd.update(passwd.encode('utf-8'))
md5passwd.update(salt.encode('utf-8'))     #对原MD5值进行二次加密(盐值混淆)

print(md5passwd.hexdigest())    #输出散列值,也就是转换成16进制字符串

 

HMACモジュール

>>> import hmac
>>> dir(hmac)
['HMAC', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_hashlib', '_hashopenssl', '_openssl_md_meths', '_warnings', 'compare_digest', 'digest', 'digest_size', 'new', 'trans_36', 'trans_5C']
>>>

ここでは、唯一学ぶ新しい方法を

 

HMAC新しい暗号化方式

>>>ヘルプ(hmac.new)
モジュールHMACの新機能のヘルプ:

新しい(キー、MSG =なし、digestmod =なし)
    新しいハッシュオブジェクトを作成し、それを返します。

    キー:ハッシュの開始キー。
    MSG:可能な場合は、すぐにオブジェクトの起動にハッシュされる
    状態。

    これで、その更新()を使用して、オブジェクトに任意の文字列を養うことができます
    方法を、そしてそのダイジェスト()を呼び出すことで、いつでもハッシュ値を求めることができる
    方法を。

>>>

 

>>>ヘルプ(hmac.new)

ヘルプHMACモジュールの新機能

新しい(キー、MSG =なし、digestmod =「デフォルトMD5」)は、新しいハッシュオブジェクトを作成し、それを返します。

キー:スタートキーのハッシュ。

MSG:可能な場合は、ハッシュはすぐにオブジェクトの状態を開始します。

これで、ハッシュ値を要求するために、そのダイジェスト()メソッドを呼び出すことにより、任意の時点での入力に任意の文字列オブジェクトをそのupdate()メソッドを使用してもよくすることができます。

>>>

import hmac     #导入模块
 
passwd = b"redhat"              #密码字符         
passwd2 = b"^*F&DB#@%&)(*%$#@"  #混淆参数 

hmacpasswd = hmac.new(passwd,passwd2,digestmod = 'MD5')  
#方法后必须加上默认使用的加密方式,这里的hmac是一个较为复杂的混合加码方法,安全系数相较于hashlib有很大的提升

print(hmacpasswd.hexdigest())    #输出散列值,也就是十六进制字符串

 

 

公開された35元の記事 ウォン称賛36 ビュー6092

おすすめ

転載: blog.csdn.net/Alexz__/article/details/104533212