python - 使用 md5/sha1 哈希命令的简单编程语言?

标签 python security syntax hash programming-languages

我想创建一个简单的暴力密码破解器,它将对来自 stdin 的输入进行哈希处理,并将结果与​​现有的哈希值(对于我的证券类)进行比较。

不过,我从来没有做过任何涉及哈希的实际编程,因为到目前为止它主要是概念/数学部分。 是否有一种(相对)易于学习的语言,它有一个简单的哈希命令?我的一个 friend 推荐了 Python,但我不确定是否还有其他我可以在一段时间内学习的语言一两天。我懂一点 C,但散列似乎相对复杂,需要额外的库。

此外,任何对实际哈希命令的语法帮助都将不胜感激。该程序本身需要能够支持奇怪的散列方法,例如对一个值进行两次散列或使用不变的设置盐,并且能够从标准输入中获取输入(以便与 johntheripper 等程序一起使用)。

最佳答案

假设您只被要求使用散列函数,而不是自己实现散列,Python's hashlib module有 md5 和 sha1 的例程:

[针对 Python 3 进行了更新,其中 hashlib 需要字节,而不是字符串:]

>>> import hashlib
>>> s = 'something to hash'
>>> sb = s.encode("utf8")
>>> hashlib.md5(sb)
<md5 HASH object @ 0x7f36f5ce3440>
>>> hashlib.md5(sb).hexdigest()
'6f4815fdf1f1fd3f36ac295bf39d26b4'
>>> hashlib.sha1(sb).hexdigest()
'72668bc961b0a78bfa1633f6141bcea69ca37468'

[遗留 Python 2 版本:]

>>> import hashlib
>>> s = 'something to hash'
>>> hashlib.md5(s)
<md5 HASH object @ 0xb7714ca0>
>>> hashlib.md5(s).hexdigest()
'6f4815fdf1f1fd3f36ac295bf39d26b4'
>>> hashlib.sha1(s).hexdigest()
'72668bc961b0a78bfa1633f6141bcea69ca37468'

关于python - 使用 md5/sha1 哈希命令的简单编程语言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9960889/

相关文章:

java - SpringBatch Step chunk 中的通用方法

python (gspread) - 整个数据表放置在我的 Google Sheets 的一个单元格中,而不是单独的单元格中

python - 四开 pdf 输出文档中的代码换行

python - 如何使用 unittest.mock.MagicMock 或 Mock 类模拟 `name` 属性?

php - Symfony2 : How to: secure application with _locale

PHP/MySQL 安全 我可以屏蔽与数据库的连接吗?

python - Wagtail 页面标题覆盖

perl - 是否有比较可用于在 Perl 中开发 Web 应用程序的不同框架的功能的列表?

java - Eclipse编辑器代码编辑

c# - 与 Rhino Mocks 一起使用的最佳样式/语法是什么?