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

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