Python 存储api_密钥、api_密码
我想存储一个用户的API_密钥和API_密码,在我的数据库中隐藏。我确实需要随时查看它们(用于身份验证),并且如果用户想要查看,我需要能够向用户显示它们。这样做的好方法是什么Python 存储api_密钥、api_密码,python,Python,我想存储一个用户的API_密钥和API_密码,在我的数据库中隐藏。我确实需要随时查看它们(用于身份验证),并且如果用户想要查看,我需要能够向用户显示它们。这样做的好方法是什么 def create_key(self, user): key = str(uuid.uuid4()).replace('-','') key_saved_in_database = # ? user.key = key_saved_in_database user.save() def
def create_key(self, user):
key = str(uuid.uuid4()).replace('-','')
key_saved_in_database = # ?
user.key = key_saved_in_database
user.save()
def view_key(self, user):
key_saved_in_database = user.key
key = # ?
return key
有哪些方法可以做到这一点?使用xoring的基本实现可能如下所示:
def create_key(self, user):
key = str(uuid.uuid4()).replace('-','')
key_saved_in_database = # ?
user.key = key_saved_in_database
user.save()
def view_key(self, user):
key_saved_in_database = user.key
key = # ?
return key
def infiniteSecret(secret):
num = 0
while true:
yield secret[num % len(secret)]
num += 1
#one direction
key_saved_in_database = map(lambda a, b: a ^ b, zip(infiniteSecret(secret), key))
#other direction
key = map(lambda a, b: a ^ b, zip(infiniteSecret(secret), key_saved_in_database))
用一个秘密密钥对密钥进行异或,再用相同的密钥进行异或,对您来说就足够了吗?(虽然不太安全。)是的,这在给定的情况下是可行的。使用对称密钥对它们进行加密(使用真正的加密算法,如AES,而不是XOR),然后将该对称密钥安全地存储在数据库外部,以便在数据库受损时(例如,通过SQL注入漏洞),密码没有泄露。