我目前正在建立一个网站,用户可以在其中输入其他网络服务的凭据,我将要抓取这些网站以获取他们的数据。
我想确保当我将其凭据保存在我的数据库中时,我正在使用尽可能最好的加密和最佳架构来确保最高级别的安全性。
我想到的第一个想法是使用RSA pub密钥(PBKDF2,PKCS1_OAEP,AES 256bit ...... ???)加密数据,然后允许我的报废脚本使用私钥解密凭据并使用它们。
我在python中编码,我相信PyCrypto是加密的首选库。 (对不起,我对加密知识知之甚少,所以我可能会混淆技术)
答案 0 :(得分:0)
在第二台服务器(加密服务器)上进行加密和解密。
将密码连同加密ID一起传递给加密服务器,并返回加密密码以存储在数据库中。
需要密码时,将加密密码传递给加密服务器进行解密。
让加密服务器监控请求活动,如果收到异常数量的请求,则发出警报,并在极端情况下停止处理请求。
使第二台服务器非常安全。无法访问Internet,访问帐户最少,双因素身份验证。
加密服务器成为穷人的HSM(硬件加密模块)。
答案 1 :(得分:-2)
from cryptography.fernet import Fernet
class Crypt():
def __init__(self, key):
self.cipher = Fernet(key)
def encrypt(self, my_message):
return self.cipher.encrypt(my_message)
def decrypt(self, my_message):
return self.cipher.decrypt(my_message)
@staticmethod
def key_maker():
return Fernet.generate_key()
if __name__ == '__main__':
KEY = Crypt.key_maker()
crypt = Crypt(KEY)
msg = crypt.encrypt(b'hi')
msg = crypt,decrypt(msg)