可恢复的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内存管理:使用各种方法保存静态/非静态对象,直到结束   在Wicket 9中的java中,当用户的会话在某些页面中过期时,它们将被重定向到登录页面,而不是会话过期页面   夏令时plusHours和plusDays之间的java JodaTime差异   java中的oracle Fetch pl/sql数组返回值   java我如何知道“程序文件”在哪里?   在Java中如何从字符串中修剪文件扩展名?   函数Java从泛型类对象获取方法   netbeans用java制作一款基本游戏,jFrame form vs jFrame   Java代理服务器在切换服务器时保持客户端连接活动   Java json从url到jcombobox获取数据   当我的JAXRS应用程序无法发送响应时,我可以记录java日志吗?(怎么做?)   爪哇什么是太阳。反映CallerSensitive注释是什么意思?   java处理多次按键忽略重复按键   java Spring会话Redis如何配置RedistemAlte以使用jackson序列化器/反序列化器   java为带有“&”字符的字符串创建XMLStreamReader   java Lanterna如何创建简单的复选框菜单?   java从Office365发送javamail v.s.gmail:有什么不同?   java自动包含另一个maven项目的子模块