python的md5和sha1加密

python的md5和sha1加密

"""
@File    :   MyJiaMi.py    
@Modify Time      @Author    @Version
------------      -------    --------    
@Desciption:
"""
import hashlib

"""
hash.update(arg)
更新hash对象。连续的调用该方法相当于连续的追加更新。例如m.update(a); m.update(b)相当于m.update(a+b)。注意,当数据规模较大的时候,Python的GIL在此时会解锁,用于提高计算速度。
一定要理解update()的作用,由于消息摘要是只针对当前状态产生的,所以每一次update后,再次计算hexdigest()的值都会不一样。
 
hash.digest()
返回bytes格式的消息摘要
 
hash.hexdigest()
与digest方法类似,不过返回的是两倍长度的字符串对象,所有的字符都是十六进制的数字。通常用于邮件传输或非二进制环境中。通常我们比较摘要时,比较的就是这个值!
 
hash.copy()
返回一个hash对象的拷贝
decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode('gb2312'),表示将gb2312编码的字符串转换成unicode编码。
encode的作用是将unicode编码转换成其他编码的字符串,如str2.encode('gb2312'),表示将unicode编码的字符串转换成gb2312编码。
如果你想知道什么是unicode
为了解决传统的字符编码方案的局限,产生了unicode。它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。
"""


class JiaMi():
    @staticmethod
    def md5(string: str) -> str:
        # 1、创造hashlib工厂
        md = hashlib.md5()
        # 2、运送原材料,工厂传入的原材料都是bytes类型
        md.update(string.encode(encoding='utf-8'))
        # 3、产出hash值
        md5 = md.hexdigest()
        print(type(md.hexdigest()))
        return md5

    @staticmethod
    def sha1(string: str) -> str:
        sha = hashlib.sha1()
        sha.update(string.encode(encoding='utf-8'))
        sha1 = sha.hexdigest()
        print(type(sha.hexdigest()))
        return sha1


print(JiaMi.md5('12121212'))
print(JiaMi.sha1('12121212'))

结果

<class 'str'>
8ce87b8ec346ff4c80635f667d1592ae
<class 'str'>
cc4723995ce819915e734147a77850427a9e95f9
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值