用什么密钥加密个人信息?

时间:2013-08-05 21:57:23

标签: security encryption hash aes pii

我正在使用PHP建立一个网站,我需要在MySQL数据库中存储有关用户的个人信息(姓名,地址,电话号码)。该信息将显示给用户。

我计划使用AES加密来加密数据。使用用户密码似乎对用户不友好,因为用户每次必须显示数据时都必须输入密码。

我想使用存储在会话中的字符串,其中附加了用户的id,散列密码和用户名,然后进行哈希处理。这是一个安全的密码密钥吗?

1 个答案:

答案 0 :(得分:2)

不,那不安全。所有这些值都在数据库中。因此,访问数据库的任何人都可以派生密钥,解密值并读取数据。

您最初的想法是更好的:使用密钥派生算法的输出,例如SCRYPT(不要只是将密码哈希,它太弱)作为加密密钥的用户密码。然后将其版本存储在用户的会话中。当然,您需要确保会话数据安全存储并在用户注销/空闲后完全删除。一种失败的安全方法是自己将数据写入文件,将文件名存储在会话中,然后安全地删除文件(例如通过shred命令或用随机数据覆盖)。