2

我需要做一些涉及存储密码摘要的用户身份验证工作。我选择了 sha256,但 md5 可以解决问题,因为它只是一个学习项目,安全性不是什么大问题。

我的问题是关于数百种不同的加密和散列库,并保持理智选择正确的库。

我经历过黑客攻击:一些库快速但不“纯”,一些“纯但不快……等等,还有其他优点和缺点。

你们会用什么来进行 sha256 密码散列?

例如,我发现了 Crypto.Hash.SHA256 和 Data.Digest.Pure.SHA。哪一个更可取,如果有的话,有什么区别?

谢谢你。

4

1 回答 1

3

Data.Digest.Pure.SHA,来自 Adam 的SHA包,仅用 Haskell 编写(因此模块名称中使用“Pure”),但 iirc 并没有那么快。 Crypto.Hash.SHA256来自 Vincent 的 cipherhash 包,是对快速 C 实现的绑定。

来自 cipherhash 的 C 绑定没有任何问题 - 它不是不纯的,它不会破坏引用透明性,只是我在构建时选择了一个错误的模块名称pureMD5并开创了先例。

于 2013-06-13T04:30:35.867 回答