0

我想加密用户的个人数据,然后将它们保存在数据库中。

加密必须在应用程序中完成(我不能在 sql server 端这样做)

现在我想知道是否可以使用每个用户的密码来加密和解密他们的数据?这种方法的优缺点是什么 /

4

2 回答 2

2

一大“骗局”:如果用户更改了他/她的密码怎么办?然后你需要重新加密所有数据!

于 2012-06-01T13:34:03.687 回答
0

您说过要存储用户的安全个人数据。除非个人信息这样做。由于多种原因,通常不建议使用它非常敏感。然而,通常做的是用户密码的散列+加盐。

这个页面很好地解释了散列和加盐的工作原理以及为什么它比加密然后解密密码更好。

http://net.tutsplus.com/tutorials/php/understanding-hash-functions-and-keeping-passwords-safe/

至于加密用户的个人信息,就像密码一样,我们可以使用自定义的盐 + 散列算法,该算法非常简单但在我们的应用程序中使用自定义散列等效的用户 ID 是有效的,它预计是永久的、静态的和永久的。

由于 uID(或每个用户的专用唯一字符串)可以对普通公众隐藏,并且我们确保无法从未经授权的来源访问我们的自定义共享功能,因此我们拥有可靠的安全系统。

这意味着,我们基于唯一字符串(例如用户 ID)和哈希+盐用户密码对个人信息进行哈希+盐。对于要解密的个人信息,用户 ID 哈希和密码哈希都应与数据库匹配。

更好的方法是在程序中使用已知的加密协议。例如,如果实施得当,通过 HTTPS TLS 发送的数据是非常安全的。

于 2012-06-01T14:12:56.453 回答