uhashlib –哈希算法

    该模块实现了相应CPython模块的子集,如下所述。有关更多信息,请参阅原始CPython文档:hashlib

    该模块实现二进制数据哈希算法。可用算法的确切清单取决于电路板。在可以实现的算法中:

    SHA256-SHA2系列的最新现代哈希算法。它适用于密码安全的目的。除非它具有特定的代码大小限制,否则建议将其包含在MicroPython内核中,并建议任何开发板都提供此功能。

    在 K210 中有硬件加速,不是软件计算

    例程

    a = bytes([0]*65)
    b = hashlib.sha256(a)
    c = b.digest()
    print(c)
    

    构造函数

    类 uhashlib.sha256([data])

    创建一个SHA256哈希对象,并有选择地向其中馈送数据。

    方法

    hash.update(data)

    将更多的二进制数据输入哈希。

    hash.digest()

    返回通过哈希传递的所有数据的哈希,作为字节对象。调用此方法后,无法再将更多数据馈入哈希。

    注意: 在micropython中, 使用此函数会完成最后的计算, 不是单纯的将结果显示出来, 所以只能调用一次, 如果你要多次使用这个值, 请保存到变量

    c = b.digest()
    print(c)
    

    多次调用会发现返回值不相同

    c = b.digest()
    d = b.digest()
    print(c == d) # False
    

    hash.hexdigest()

    未实现此方法。使用 ubinascii.hexlify(hash.digest()) 可获得类似的效果。