1
2
如果你更喜欢简单和教学价值而不是效率,那么 VSH 哈希函数可能是一个选项。虽然这个函数缺少其他哈希函数所具有的一些其他属性(例如伪随机性),但它带有很强的参数,即vsh是一个抗冲突哈希函数。 |
2
4
如果您想要一个安全散列函数来实际保护某些内容(例如,作为加密算法的一部分),最好使用sha-512的库实现(或者可能是ripemd-160或其他一些实现)。 如果你想要它来散列密码,我想说像mash这样的散列函数可以满足抵抗蛮力(与salt一起使用)和彩虹表的需求。我仍然不会使用它,除非我有严格的要求禁止或阻止我使用库实现-但听起来你可能只有这些。 如果你想让它更不安全,比如说文件完整性检查,几乎任何事情都可以做到,除非你明确地担心恶意用户会产生冲突。在这种情况下,根据您所保护的内容的价值,我将从简单的mash到更具抵抗力的sha-512或ripemd-320。 |
3
2
对于您的要求,我会查看 SHA-3 finalists . 如果您已经为加密实现了aes原语,那么您可以重新使用它来相对简单地实现几个函数。 否则,我想我会和丹尼尔·伯恩斯坦一起去 Cubehash . 那一个看起来有一些“简单的优雅”,你正在寻找。 |
4
2
根据Bruce Schneier的“应用密码学”第18.12节: “可以使用块链接模式下的公钥加密算法作为单向哈希函数。” RSA(私钥被丢弃)被列为示例。安全性和RSA一样强。 RSA加密步骤很容易实现。尤其是在具有任意大小整数的语言中。 2个注意事项是: 1。比大多数(所有)其他安全哈希函数慢得多。这对我来说很好。 2。如果您硬编码您的公钥到代码中,世界将不得不相信您丢弃了您的私钥数据。或者创建自己的公钥。 只要有一个有效的例子,我就会发布代码。 编辑:给你。30行。简单。安全。 编辑2:我实际包含的是一个变体,可能不起作用。请参阅本文下面的评论并查看更新。
|
5
1
退房 TrueCrypt source . 它们实现了几个强大的哈希函数。只是标准警告,修改现有的实现是不明智的,或者更糟的是,使用自己的实现。几乎可以肯定的是,它会带来弱点。我知道你不是在这里做的,只是免责声明。:) |
David J. · 这个基本的scheme函数有什么问题 2 年前 |
Asher · 如何使用DrRacket遵循简单方案手册 6 年前 |
Flux · 如何从MIT方案访问环境变量? 6 年前 |
Adam Morad · 方案反转值 6 年前 |
Adam Morad · 方案更改树值 6 年前 |
lightning_missile · 词法范围和共享对象 6 年前 |