• hashlib模块


    一、算法介绍

    python的hashlib提供了常见的摘要算法,如MD5,SHA1等等

    什么是摘要算法呢?摘要算法又称哈希算法、散列算法。他通过一个函数,把任意长度的数据转化为一个长度固定的数据串(通常用16进制的字符串表示)

    摘要算法就是通过摘要函数f()对任意长度的数据data计算出固定长度的摘要digest,目的是为了发现原始数据是否被人篡改过

    摘要算法之所以能指出数据是否被篡改过,就是因为摘要函数是一个单向函数,计算f(data)很容易,但通过digest反推data却非常困难。而且,对原始数据做一个bit的修改,都会导致计算出的摘要完全不同

    二、md5加密

    MD5是最常见的摘要算法,速度很快,生成结果是固定的128bit字节,通常用一个32位的16进制字符串表示

    我们以常见的摘要算法MD5为例,计算出一个字符串的MD5值:

    import hashlib
    md5=hashlib.md5()#调用md5算法
    md5.update('haha'.encode('utf8'))#对字符串haha加密
    print(md5.hexdigest())#4e4d6c332b6fe62a63afe56171fd3725

    如果数据量很大,可以分块多次调用update(),最后计算的结果是一样的

    import hashlib
    md5=hashlib.md5()#调用md5算法
    md5.update('haha'.encode('utf8'))#对字符串haha加密
    md5.update('hehe'.encode('utf8'))#对字符串hehe加密
    print(md5.hexdigest())#bcd5ec0044d879406ef41ef6cc498e64

    三、SHA1加密

    SHA1的结果是160bit字节,通常用一个40位的16进制字符串表示

    import hashlib
    sha1=hashlib.sha1()#调用md5算法
    sha1.update('haha'.encode('utf8'))#对字符串haha加密
    sha1.update('hehe'.encode('utf8'))#对字符串hehe加密
    print(sha1.hexdigest())#f5b2f567037219cad13219c023961850c65a3ddc
  • 相关阅读:
    Java实现 LeetCode 394 字符串解码
    Java实现 LeetCode 394 字符串解码
    Java实现 LeetCode 392 判断子序列
    Java实现 LeetCode 392 判断子序列
    Java实现 LeetCode 392 判断子序列
    Java实现 LeetCode 391 完美矩形
    Java实现 LeetCode 391 完美矩形
    Java实现 LeetCode 391 完美矩形
    Java实现 LeetCode 390 消除游戏
    Java实现 LeetCode 390 消除游戏
  • 原文地址:https://www.cnblogs.com/z-x-y/p/9178868.html
Copyright © 2020-2023  润新知