可恢复的hashlib:cpython基于openssl的hashlib标准库的可选择接口

rehash的Python项目详细描述


rehash是 cpythonhashlib标准库。rehash提供散列 可以从它们的repr()中进行腌制、持久化和重组, 以其他方式序列化。rehash api的其余部分与 hashlib

rehash散列器可用于检查点和恢复进度 散列大字节流时:

importpickle,rehashhasher=rehash.sha256(b"foo")state=pickle.dumps(hasher)hasher2=pickle.loads(state)hasher2.update(b"bar")asserthasher2.hexdigest()==rehash.sha256(b"foobar").hexdigest()

安装

pip install rehash

应用程序

当您的vm是短期的或可抢占的,并且要散列的对象很大时,rehash在任何情况下都是有用的。为了 例如,rehash可用于在aws lambda函数或google cloud之间传递大型对象的散列状态。 函数,其运行时间限制分别为5分钟和9分钟(todo:example)。

非openssl散列器

^ python 3.6中的{tt4}$和blake2哈希算法不是基于openssl的,rehash不支持它们。

皮比

pypy使用自己的hasher实现。这些不能使用rehash序列化。

安全说明

默认情况下,rehash对象用一个暴露其内部状态的repr()呈现自己。这样就可以 从停止的点继续散列。如果在特定条件下通过不受信任的通道暴露, 这可能允许攻击者使用扩展攻击。如果你不确定这件事的含义, 导入rehash后设置rehash.opaque_repr = True

许可证

根据Apache License, Version 2.0条款授权。

https://travis-ci.org/kislyuk/rehash.pnghttps://codecov.io/github/kislyuk/rehash/coverage.svg?branch=masterhttps://img.shields.io/pypi/v/rehash.svghttps://img.shields.io/pypi/l/rehash.svghttps://readthedocs.org/projects/rehash/badge/?version=latest

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在依赖项上没有这样的方法异常   java如何将@Value注入setter?   验证输入java的最佳实践   java在使用kotlin的安卓项目中没有此类字段错误   我们可以强制java接口实现超时吗?   java将BasicAuth()与FormLogin()组合用于不同的路径   java无法在更新SDK后更新应用程序(未安装应用程序)   macos Java 8、Swing和OSX:对话框使UI对鼠标无响应   java自定义单元格格式以US格式显示,尽管使用了带UK语言环境的DataFormatter   java按升序排列列表字符串数据   java Hibernate OGM[PersistenceUnit:person]无法构建Hibernate SessionFactory   生命周期配置未涵盖java插件执行:com。乱穿马路。专家插件。安卓generation2:安卓mavenplugin:3.5.0:generatesources   java RecyclerView显示为空   当服务器不返回任何输入时,java InputStream read()会阻塞