encryption - 使用用户提供的密码短语进行数据库加密

标签 encryption

我将构建一个小型 Web 应用程序,它将一些加密数据存储在数据库 (sqlite) 中。出于显而易见的原因,一项必要条件是将加密 key 与数据库文件一起保存。

因此,该方法可以是用户在登录屏幕上提供的密码,然后从中派生 key 来加密数据。当然,传输将由 SSL 保护。

问题是,由于用户的预期行为是只输入一次密码(例如,在登录时),而不是每次他单击链接时都被询问,密码必须存储在某个地方,至少是暂时的……但是,存储在哪里?

将它保存在 PHP session 变量中是个好主意吗? ...它将被写入服务器端的磁盘。

将其保留在客户端更好(或更糟)吗?丢弃 cookie,我不知道这是否可能,也许 Ajax 会有所帮助?

无论如何,您认为解决这个问题的最佳方法是什么?

谢谢。

最佳答案

您要查找的算法称为 PBKDF2 .它从密码中导出加密 key 。

您可能希望将派生 key 存储在非磁盘支持的 ram 中,例如内存缓存。

关于encryption - 使用用户提供的密码短语进行数据库加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1813993/

相关文章:

Maven 密码加密 BadPaddingException

java - 在 java 中模拟 Cipher 时出错

java - 如何创建加密的 Jar 文件?

encryption - 如何加密ini文件中的值

java - 如何使用密码的哈希值进行加密

java - Android:无法解密值

java - 每次为相同的字符串值生成相同的盐

C# 错误的 PKCS7 填充

windows - 使用 Gpg4win 命令行使用公钥批量加密

javascript - 加密 iOS 和解密 Node.js AES