gpt4 book ai didi

security - 在 web2py 中加密存储数据的最佳方法是什么?

转载 作者:行者123 更新时间:2023-12-04 06:42:15 26 4
gpt4 key购买 nike

我需要加密存储在 web2py 中的数据,更准确地说是密码。

这不是关于身份验证,而是更多类似于 KeePass 应用程序的内容。

我已经看到它包含在 web2py 中,但是 M2Secret可以轻松做到这一点。使用 M2Secret 我可以使用这个:

导入 m2secret

# 加密
secret = m2secret.Secret()
secret.encrypt('我的数据', '我的主密码')
序列化 = secret.serialize()

# 解密
secret = m2secret.Secret()
secret.deserialize(序列化)
data = secret.decrypt('我的主密码')

但是我必须在我的设备中包含 M2Crypto 库。

有没有办法用已经包含在 web2py 中的 PyMe 来做到这一点?

最佳答案

默认情况下,web2py 存储使用 HMAC+SHA512 散列的密码,因此您无需执行任何操作。它比您建议的机制更好,因为加密是可逆的,而散列则不是。您可以更改此设置并执行您上面的要求,但它不会比使用纯文本更安全(因为您必须在应用程序中公开加密 key )。

反正。假设你有一个

db.define_table('mytable',Field('myfield'.'password'))

并且您想使用 m2secret。你会这样做:
class MyValidator:
def __init__(self,key): self.key=key
def __call__(self,value):
secret = m2secret.Secret()
secret.encrypt(value, self.key)
return secret.serialize()
def formatter(self,value):
secret = m2secret.Secret()
secret.deserialize(value)
return (secret.decrypt(self.key),None)

db.mytable.myfield.requires=MyValidator("master password")

在 web2py 中,验证器也是双向过滤器。

关于security - 在 web2py 中加密存储数据的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4095339/

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