Jus*_*uen 23 python authentication encryption google-app-engine
我想为我的应用程序按照SUAS的方式制作一个身份验证系统,除了使用SHA256进行散列密码,我想使用bcrypt或scrypt.不幸的是python的py-bcrypt和scrypt都使用了本地c,这是GAE不支持的.
有什么方法吗?
Eli*_*ins 24
Scrypt和BCrypt都是处理器密集型(按设计).因此,我非常怀疑任何pure-python实现都足够安全 - 也就是说,能够在合理的时间内使用足够数量的舍入进行哈希.
我个人可以证明这一点,我试着写一个纯Python BCrypt,这是方法是有用的太慢.另一个答案中提到的纯python bcrypt实现的文档注意到这个确切的缺陷 - 要小心使用它来实际安全性,它的轮次必须设置得太低.唯一一次这样的实现足够快的是pypy,这不是你面临的情况.
您想要使用的是基于可用的哈希原语(如SHA-2)的内容.这样,即使在GAE下,重的计算位仍然可以用C写入.我建议你根据PBKDF2或SHA-512加密中的东西(注:这是不是只是一个普通的SHA512哈希值).算法的安全性同样好,但纯python实现将更加高效,因为它们可以利用hashlib来完成繁重的工作.
该Passlib库可能在这种情况下是有用的,它包含的实现PBKDF2和SHA-512加密中的纯Python.(免责声明:我是该图书馆的作者).另一个支持PBKDF2的Python库是Cryptacular.
| 归档时间: |
|
| 查看次数: |
6010 次 |
| 最近记录: |