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()) #输出散列值,也就是十六进制字符串