我需要做一些涉及存储密码摘要的用户身份验证。 我选择了sha256,但是md5可以做到这一点很好,因为它只是一个学习项目而且安全性不是很大。
我的问题是关于数百个不同的加密和散列库,并保持理智选择正确的。
我经历过hackage:有些库快但不“纯”,有些“纯粹但不快......等等还有其他优点和缺点。”
你们会用什么来进行sha256密码哈希?
例如,我找到了Crypto.Hash.SHA256和Data.Digest.Pure.SHA。 哪一个更优选,有什么区别?
谢谢。
答案 0 :(得分:3)
Data.Digest.Pure.SHA
包的 SHA
仅用Haskell编写(因此模块名称中的'Pure'),但不是那么快iirc。 Crypto.Hash.SHA256
来自Vincent的cipherhash包,是对快速C实现的绑定。
来自cipherhash的C绑定没有任何问题 - 它不是不纯的,它不会破坏参照透明度,只是我在构建pureMD5
时选择了一个错误的模块名称并且设置了一个先例。