我想加密用户的个人数据,然后将其保存在数据库中。
加密必须在应用程序中完成(我不能在sql server端完成)
现在我想知道是否可以使用每个用户的密码来加密并稍后解密他们的数据?这种方法的优点和缺点是什么/
答案 0 :(得分:2)
一个很大的'骗局':如果用户更改了他/她的密码怎么办?然后你需要重新加密所有数据!
答案 1 :(得分:0)
您已经说过要存储用户的安全个人数据。这样做除非个人信息。由于多种原因,一般不推荐极其敏感。然而,通常做的是对用户密码进行哈希+盐析。
这个页面很好地解释了散列和腌制是如何工作的,以及为什么它比加密更好,然后解密密码。
http://net.tutsplus.com/tutorials/php/understanding-hash-functions-and-keeping-passwords-safe/
至于加密用户的个人信息,就像密码一样,我们可以使用自定义salt +哈希算法,这个算法在我们的应用程序上非常简单但有效,可以使用预期为永久,静态和永远坚持。
由于可以向普通公众隐藏uID(或每个用户的专用唯一字符串),并且我们确保无法从未经授权的来源访问我们的自定义共享功能,因此我们拥有可靠的安全系统。
这意味着,我们根据一个唯一的字符串(例如userID)和哈希+盐对用户的密码进行散列+盐个人信息。对于要解密的个人信息,userID哈希和密码哈希都应该与数据库匹配。
更好的方法是在程序中使用已知的加密协议。例如,如果正确实施,通过HTTPS TLS发送的数据非常安全。