md5使用方法

加密算法

  • 對稱加密
    • 數據加密使用相同的鑰匙
    • 常見的 對稱加密 算法主要有 DES3DESAES
  • 非對稱加密
    • 加密和解密使用不同的鑰匙,公鑰用於加密數據,私鑰用於解密數據
    • 常見的 非對稱算法 主要有 RSADSA
  • 單向加密
    • 只能加密,不能解密
    • 散列算法(hash) 主要有 SHA-1MD5
      • 特點:不可逆、定長輸出、抗修改性、強碰撞性。
方法 作用
hashlib.new(name,data=b) 生成一個hash對象
hashlib.hash(data=b) 生成一個使用該算法的hash對象
hash對象.update(arg=None) 更新hash對象
hash對象.digest() 返回hash算法計算得到的值(bytes類型)
hash對象.hexdigest() 返回hash算法計算得到的值(str類型)
hashlib.md5() 生成md5對象
  • md5初探

import hashlib
hashlib.md5('你好')

返回 TypeError: Unicode-objects must be encoded before hashing類型錯誤

提示hashlib.ma5()加密的數據必須是一個bytes類型的數據,因此要對他進行編碼

import hashlib
res = hashlib.ma5('你好'.encode())
print(res)

返回值 <md5 HASH object @ 0x0000015381FA3C10>

  • 這裏可以看到返回的值是一個類,那麼要得到他的值可以使用digesthexdigest方法
import hashlib
res = hashlib.ma5('你好'.encode())
print(res.hexdigest())
print(res.digest())

返回值

8277e0910d750195b448797616e091ad

b'\x82w\xe0\x91\ru\x01\x95\xb4Hyv\x16\xe0\x91\xad

  • 如果想要更新hash對象內的值要使用update方法對對象進行更新。
import hashlib
a = 'd'.encode()
res = hashlib.md5(a)
print(res.hexdigest())
print(res.digest())
res.update('張三'.encode())
print(res.hexdigest())
print(res.digest())

返回值

8277e0910d750195b448797616e091ad
b'\x82w\xe0\x91\ru\x01\x95\xb4Hyv\x16\xe0\x91\xad'
9bcb8586295cd14fc9f910a521a1cccf
b'\x9b\xcb\x85\x86)\\\xd1O\xc9\xf9\x10\xa5!\xa1\xcc\xcf

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章