加密

python中的加密操作

下面将介绍python 中常用的几种加密算法。

第一类:

  1. 导入 hashlib文件,这个文件中定义了md5和sha两种算法的加密方法

  2. md5码编码方式

    import hashlib
    
    # 01.用二进制将字符串hello world进行编码
    print("hello world".encode())
    # b'hello world' 
    
    # 02.md5编码
    #  hello world用md5算法编码后,生成一个md5码的对象
    test = hashlib.md5("hello world".encode())
    print(test)
    # <md5 HASH object @ 0x0000025C6204A170>这是一个对象,@后面是对象的存储地址 
    
    # 使用hexdigest()方法将生成的对象中的编码取出来
    print(test.hexdigest())
    # 5eb63bbbe01eeed093cb22bb8f5acdc3  这就是hello world用md5编码的结果
    
  3. sha系列

    import hashlib
    
    # 01.sha1编码
    test1 = hashlib.sha1("hello world".encode())
    print(test1)
    # <sha1 HASH object @ 0x0000024BAFD7A170>
    print(test1.hexdigest())
    # 运行结果:5eb63bbbe01eeed093cb22bb8f5acdc3
    
    # 02.sha256编码
    test2 = hashlib.sha256("hello world".encode())
    print(test2)
    # <sha256 HASH object @ 0x000001677B37AA30>
    print(test2.hexdigest())
    # b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
    
    # 03.sha224编码
    test3 = hashlib.sha224("hello world".encode())
    print(test3)
    # <sha224 HASH object @ 0x00000246CAC5A170>
    print(test3.hexdigest())
    # 2f05477fc24bb4faefd86517156dafdecec45b8ad3cf2522a563582b
    
    # 04.sha384编码
    test4 = hashlib.sha384("hello world".encode())
    print(test4)
    # <sha384 HASH object @ 0x00000264A1FCA170>
    print(test4.hexdigest())
    #      运行结果:fdbd8e75a67f29f701a4e040385e2e23986303ea10239211af907fcbb83578b3e417cb71ce646efd0819dd8c088de1bd
    

    注意:md5 和 sha系列的加密 都是不可逆的,也就是说这两个系列的加密算法,只能加密,不能解密,是单项加密。

  4. hmac 加密 和给md5码加密比较类似

    import hmac 
    
    res = hmac.new("haha".encode(), "zhangsan".encode())
    print(res.hexdigest())
    
    案例: md5加盐加密
    import hashlib
    import random
    
    # 编写一个加盐的方法
    def jiayan():
        # 随机从1-10000获取一个数
        res = random.randint(1, 10000)
        # 直接将随机数res使用md5编码的结果
        # print(hashlib.md5(str(res).encode("utf-8")).hexdigest())
        # 将随机数res转为字符串并且拼接一个字符串的编码返回
        return (str(res)+"hahaha").encode("utf-8")
    
    # 调用加盐方法,并将返回的结果使用md5加密
    my_res = hashlib.md5(jiayan())
    # 输出打印
    print(my_res)  #  <md5 HASH object @ 0x000001B90E236620>
    print(my_res.hexdigest())
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值