我正在开发一个PHP/MySQLi应用程序,收集有关用户的基本健康数据(年龄/身高/体重等),并询问他们关于他们的生活方式的各种问题(饮酒,工作幸福感等)。
我目前使用盐渍bcrypt作为密码安全性和单独的表用于用户和健康数据(通过用户ID连接),但客户端希望数据也加密,并以黑客无法将用户表中的用户与数据表中的数据连接起来的方式存储。
没有大量的数据要存储,我想知道将所有用户的健康数据存储在JSON中并使用bcrypt加密JSON,所以即使数据库中的两个表被链接,数据也无法在不知道密码的情况下检索。
有其他/更好的方法吗?是否有一种方法可以防止黑客能够将用户表中的用户与其数据表中的数据连接起来?这个行业是如何处理的呢?
提前感谢:)
我目前使用咸bcrypt作为密码安全
很棒!
和单独的用户和健康数据表(通过user ID连接),但客户端希望数据也加密,并以黑客无法将用户表中的用户与数据表中的数据连接起来的方式存储。
没有大量的数据要存储,我想知道将所有用户的健康数据存储在JSON中并使用bcrypt加密JSON,所以即使数据库中的两个表被链接,数据也无法在不知道密码的情况下检索。
所以,bcrypt不是一个加密函数,它是一个密码哈希函数。
此时,有两种可能:- 您正在尝试使用bcrypt进行加密,这将不起作用。
- 你实际上是用blowfish而不是bcrypt加密密码,这很糟糕!
如果你使用河豚加密,而不是bcrypt密码哈希函数,你应该立即解决这个问题。password_hash()
和password_verify()
是你的朋友!
有其他/更好的方法吗?是否有一种方法可以防止黑客能够将用户表中的用户与其数据表中的数据连接起来?
有一个名为CipherSweet的开源库,它以这样一种方式加密数据,您可以通过带有盲索引的加密字段将它们连接起来。盲索引可以以允许误报的方式构造,从而使攻击者无法使用它将表连接在一起。
您将最有可能最终使用CipherSweet的EncryptedMultiRows
功能来实现此管理。
行业如何处理这个问题?
差。现有的解决方案不应该被用来激发灵感。你得前卫一点。