Security 如何在数据库中存储加密的机密用户信息,这些信息需要在运行时解密?
我正在创建一个应用程序,需要在其中存储客户的信息(如他们的API密钥和API机密,以访问我的服务以及其他机密信息) 现在,在数据库中,我想以加密格式存储这些文件。在这方面,我决定使用对称密钥加密,AES对细节进行加密 但是,出于安全目的,我希望在每个客户机上使用不同的AES加密密钥,这样即使数据库被破坏,也无法使用单个密钥对所有数据进行解密 但是,由于明显的原因,我不想在数据库中存储带有加密信息的私钥 因此,我似乎无法决定如何存储密钥,特别是因为我需要绑定哪个密钥属于哪个客户机Security 如何在数据库中存储加密的机密用户信息,这些信息需要在运行时解密?,security,encryption,cryptography,Security,Encryption,Cryptography,我正在创建一个应用程序,需要在其中存储客户的信息(如他们的API密钥和API机密,以访问我的服务以及其他机密信息) 现在,在数据库中,我想以加密格式存储这些文件。在这方面,我决定使用对称密钥加密,AES对细节进行加密 但是,出于安全目的,我希望在每个客户机上使用不同的AES加密密钥,这样即使数据库被破坏,也无法使用单个密钥对所有数据进行解密 但是,由于明显的原因,我不想在数据库中存储带有加密信息的私钥 因此,我似乎无法决定如何存储密钥,特别是因为我需要绑定哪个密钥属于哪个客户机 如何实现这一点?
如何实现这一点?在这种情况下,哪种方法是最好的?使用KDF从用户密码派生加密密钥,然后使用此密钥加密其私人信息 当采取任何需要API机密或任何其他存储的私有数据的操作时,只需请求用户密码并使用它再次派生密钥并使用密钥进行解密
如果希望用户能够更改其密码,请为每个用户添加一个中间随机密钥,并使用此密钥加密其数据。使用从其密码派生的密钥加密随机密钥。然后,在更改用户密码时,您只需解密并重新加密随机密钥。使用KDF从用户密码派生加密密钥,然后使用此密钥加密其私人信息 当采取任何需要API机密或任何其他存储的私有数据的操作时,只需请求用户密码并使用它再次派生密钥并使用密钥进行解密
如果希望用户能够更改其密码,请为每个用户添加一个中间随机密钥,并使用此密钥加密其数据。使用从其密码派生的密钥加密随机密钥。然后,在更改用户密码时,您只需解密并重新加密随机密钥。这实际上属于security.stackexchange.com网站。当您倾向于在stackoverflow上使用安全标记而不指定语言或运行时环境时,您应该将其视为一个危险信号。这实际上属于security.stackexchange.com网站。当您倾向于使用安全标记而不在stackoverflow上指定语言或运行时环境时,您应该将其视为一个危险信号。