gpt4 book ai didi

python - 如何在 appengine for Python 上使用 bcrypt/scrypt?

转载 作者:IT老高 更新时间:2023-10-28 20:27:47 25 4
gpt4 key购买 nike

我想按照 SUAS 的方式为我的应用程序创建一个身份验证系统, 除了不使用 SHA256 对密码进行哈希处理之外,我想 use bcrypt或加密。不幸的是,python 的 py-bcrypt 和 scrypt 都使用原生 c,GAE 不支持。

有什么办法吗?

最佳答案

Scrypt 和 BCrypt 都是处理器密集型的(按设计)。正因为如此,我非常怀疑任何纯 python 实现是否足够快以保证安全——也就是说,能够在合理的时间内使用足够数量的轮次进行散列。

我可以亲自证明这一点,我已经尝试过编写纯 Python BCrypt,但它方式太慢而无法使用。另一个答案中提到的纯python bcrypt 实现的文档指出了这个确切的缺陷 - 要小心将其用于实际安全性,它的轮数必须设置得太低。此类实现速度足够快的唯一情况是在 pypy 下,这不是您所面临的情况。


您想要使用的是基于可用哈希原语(如 SHA-2)的东西。这样,即使在 GAE 下,繁重的计算位仍然可以用 C 编写。我会推荐一些基于 PBKDF2 或 SHA-512-Crypt 的东西(注意:这 不是 只是一个普通的 sha512 哈希)。算法的安全性同样好,但纯 python 实现会更有效率,因为它们可以利用 hashlib 来完成繁重的工作。

Passlib库在这种情况下可能有用,它包含 PBKDF2 的实现和 SHA-512-Crypt在纯python中。 (免责声明:我是该库的作者)。另一个支持 PBKDF2 的 Python 库是 Cryptacular .

关于python - 如何在 appengine for Python 上使用 bcrypt/scrypt?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7027196/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com