问题标签 [hashlib]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3254 浏览

python - Python data/file Crc

I am wanting to generate and store a CRC (or similar) value for a given list of files which can be used as a comparison at a later point. Writing a function to do this is simple enough, but is there a more standard way to do it within the Python libs?

The value generated does not need to be of any particular standard.

0 投票
13 回答
138536 浏览

python - 在 Python 中获取大文件的 MD5 哈希

我使用了 hashlib(它在 Python 2.6/3.0 中替换了 md5),如果我打开一个文件并将其内容放入hashlib.md5()函数中,它工作得很好。

问题在于非常大的文件,它们的大小可能超过 RAM 大小。

如何在不将整个文件加载到内存的情况下获取文件的 MD5 哈希?

0 投票
3 回答
4635 浏览

python - python hashlib和sha512sum工具之间SHA512的区别

我从 linux 'sha512sum' 工具和 python hashlib 库中获得了不同的消息摘要。

这是我在 Ubuntu 8.10 上得到的:

两者都应该计算字符串“test”的消息摘要,为什么你认为我得到不同的结果?

0 投票
2 回答
5981 浏览

python - 哈希库/md5. 与 python 2.4 的兼容性

python 2.6 报告 md5 模块已过时,应使用 hashlib。如果我import md5改为import hashlib我将解决 python 2.5 和 python 2.6,但不是 python 2.4,它没有 hashlib 模块(导致 ImportError,我可以捕获)。

现在,要修复它,我可以做一个 try/catch,并定义一个 getMd5() 函数,以便根据 try 块的结果定义一个正确的函数。这个解决方案好吗?

在更一般的情况下,您将如何解决此问题,例如:您有两个具有相同目标但界面不同的不同库,并且您想使用一个,但如果第一个不是,则退回并使用另一个成立。

0 投票
6 回答
16998 浏览

python - 在 python 中为大文件创建校验和的最快方法

我需要通过网络传输大文件,并且需要每小时为它们创建校验和。所以生成校验和的速度对我来说至关重要。

不知何故,我无法让 zlib.crc32 和 zlib.adler32 在 Windows XP Pro 64 位机器上处理大于 4GB 的文件。我怀疑我在这里达到了 32 位限制?使用 hashlib.md5 我可以得到一个结果,但问题是速度。为 4.8GB 文件生成一个 md5 大约需要 5 分钟。任务管理器显示该进程仅使用一个核心。

我的问题是:

  1. 有没有办法让 crc 在大文件上工作?我更喜欢使用 crc 而不是 md5
  2. 如果没有,那么有没有办法加快 md5.hexdigest()/md5.digest?或者在这种情况下任何hashlib hexdigest/digest?也许将其拆分为多线程进程?我怎么做?

PS:我正在研究类似于“资产管理”系统的东西,有点像 svn,但资产由大型压缩图像文件组成。这些文件有微小的增量更改。检测更改和错误检测需要散列/校验和。

0 投票
5 回答
2912 浏览

python - 持久化 hashlib 状态

我想创建一个hashlib实例,update()然后以某种方式保持其状态。稍后,我想使用这个状态数据重新创建对象,并继续update()它。最后,我想获得hexdigest()数据的总累积运行。状态持久性必须在多次运行中存活下来。

例子:

编辑:

在 2010 年,我没有找到使用 python 执行此操作的好方法,并最终用 C 编写了一个小型辅助应用程序来完成此操作。但是,下面有一些很好的答案,当时我不知道或不知道。

0 投票
2 回答
11882 浏览

python - 使用不同版本的 sha 散列(hashlib 模块)是否存在重大开销

Python 模块提供以下hashlib哈希算法构造函数:md5()sha1()sha224()sha256()sha384()sha512()

假设我不想使用 md5,那么使用 sha1 而不是 sha512 有很大的不同吗?我想使用类似的东西hashlib.shaXXX(hashString).hexdigest(),但由于它只是用于缓存,我不确定我是否需要 512 的(最终)额外开销......

这种开销是否存在,如果存在,它有多大?

0 投票
2 回答
1493 浏览

python - 它是这个 Python 脚本中的 MD5 摘要吗?

我试图理解前几天在 Stackoverflow 上给我的 Python 中这个简单的 hashlib 代码:

我认为这print m会向我显示短语的 MD5 摘要:“没有人检查这里的垃圾邮件重复”,但结果我在本地主机上得到了这一行:

奇怪,当我刷新页面时,我得到了另一行:

每次刷新它时,我都会得到另一个值:

md5 哈希对象@017F8AE0

md5 哈希对象@01806220

md5 哈希对象@01806360

md5 哈希对象@01806400

md5 哈希对象@01806220

为什么会这样?我想,我在每一行流动“@”的内容并不是真正的摘要。那这是什么?以及如何在此代码中显示 MD5 摘要?

我的python版本是Python 2.5,我目前使用的框架是webapp(我已经从“Google App Engine”下载了它和SDK)

0 投票
1 回答
8954 浏览

python - 对 Python 哈希的操作

我有一个相当奇怪的问题。对于分布式哈希表,我需要能够对 MD5 哈希进行一些简单的数学运算。这些包括总和(由哈希表示的数字总和)和模运算。现在我想知道实现这些操作的最佳方法是什么。我正在使用 hashlib 来计算哈希值,但是由于我得到的哈希值是字符串,我如何用它们计算?

0 投票
6 回答
73712 浏览

python - 使用盐在 SHA512 中进行散列?- Python

我一直在查看 hashlib 文档,但没有发现任何关于在散列数据时使用盐的内容。

帮助会很棒。