PYTHON - Hashlib模块

本文深入解析了Python的Hashlib模块,介绍了其提供的多种哈希算法,包括MD5、SHA系列等,并详细阐述了如何使用这些算法进行数据加密,以及如何通过Hashlib模块的API进行操作。

文章目录

Hashlib模块

用来保证数据安全的模块

Hashlib模块提供了许多供我们调用的hash算法,主要有:

  • md5
  • SHA系列:sha1, sha224, sha256, sha384, sha512

方法API

API描述
hashlib.algorithms_guaranteed可以获取有多少中加密方式
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模块需要导包

import hashlib

  1. hashlib.algorithms_guaranteed 可以获取有多少中加密方式

    print(hashlib.algorithms_guaranteed)
    #结果
    {'sha1', 'sha3_384', 'sha256', 'shake_128', 'sha512', 'sha3_512', 'blake2s', 'blake2b', 'shake_256', 'sha384', 'sha3_256', 'md5', 'sha3_224', 'sha224'}
    
  2. hashlib.new(name, data=b”) 生成一个hash对象

    data = '这世界很酷!'
    res = hashlib.new('md5',data.encode())
    print(res)
    #结果处理为二进制
    print(res.digest())
    #结果处理为md5
    print(res.hexdigest())
    
    #输出如下
    <md5 HASH object @ 0x00000000006375F8>
    b'\x8d\x81\xcc@\xda\xed37Z\x94\x00\x03X\xe4\x9d\xeb'
    8d81cc40daed33375a94000358e49deb
    
  3. hashlib.hash算法名(data=b”) 生成一个使用该算法的hash对象

    data1 = 'hello python!'
    res1 = hashlib.sha256(data1.encode())
    print(res1)
    #结果处理为HASH sha256 对象
    print(res1.hexdigest())
    
    #输出如下
    <sha256 HASH object @ 0x0000000001DE8670>
    b4273ad6ed54c9f5865535daa7ebb5892d2c76bb8310eecd762eb2010ec76272
    
  4. Hash对象.update(arg=None) 更新hash对象

    data2 = 'hello world python!'
    #重新写入对象的数据
    res1.update(data2.encode())
    #返回Hash算法计算得到的值(str类型)
    res1.hexdigest()
    print(res1.hexdigest())
    data3 = '我是雨轩大厦波!'
    #再次重新写入对象的数据
    res1.update(data3.encode())
    #返回Hash算法计算得到的值(bytes类型)
    res.digest()
    print(res.digest())
    print(res1.hexdigest())
    
    #输出结果
    94176670bc376091107a689e02c053a0245232e72cf20c8a4a03caf7a6910569
    b'\x8d\x81\xcc@\xda\xed37Z\x94\x00\x03X\xe4\x9d\xeb'
    add03a7b4b33bbee8fe238c1a5a9e5d835539e7cb65546fffca86ea6ebb7078f
    
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值