我正在处理一个处理财务数据的在线平台,我正在寻找对其上的所有数据进行加密,以避免以泄露个人密码的人之外的任何方式泄露信息。我希望你能帮我解决这个问题:
平台在php文件和mysql数据库之间进行交互。用户个人密钥由登录后给出的session_id定义。
表1:用户(user_id,电子邮件,密码等) - 这会存储任何用户登录我们平台并访问我们任何模板的相关数据。
表2: User_template1_data (template_user_id,user_id,电子邮件,名称,特定信息。)这将特定数据存储到数据模板
表3,4,5,6:日志(log_id,日期时间,详细信息,template_user_id等)。
在日志表格(可能是付款,作业,广告等)中,我们存储了敏感数据,除了用户之外,没有其他人可以阅读,除非有权访问,否则甚至不是管理员。
现在我想到的方式是:
示例:
表1:
user_id - Name - email - pass
1 - Jay - jay.. - (salt / hashed)
表2:
User_template1_data, user_id, division *
1 - 1 - Jay - jay.. - accountant
php会看到用户1显然是一名会计师。这不是真正敏感的数据。
我们在表3 中添加以下数据:
> log_id - User_template1_data - date - client - earnings 1 - 1 -
> 2016,01,01 - Gucci SLR - 5000,00 2 - 1 - 2016,02,01 - Prada SLR -
> 51000,00 3 - 1 - 2016,03,01 - Chanel SLR - 15000,00
此连接应加密,因此任何侵入数据库的人都可以看到连接。我想到了以下内容,如果我错了,请纠正我:
> log_id - User_template1_data - date - client - earnings 1 - hash and
> salt the User_template1_data - 2016-01-01 - Gucci SLR - 5000 2 - hash
> and salt the User_template1_data - 2016-02,01 - Prada SLR - 51000 3 -
> hash and salt the User_template1_data - 2016-03-01 - Chanel SLR -
> 15000
这种方式只有登录的人,存储敏感数据加密,那么就不会被解密。
如果我错了,请告诉我,如果我错了,请告诉我 最重要的是,我应该使用哪种加密技术,如何构建它等等。非常感谢!
答案 0 :(得分:0)
一般情况下,您应该设置数据库,以便可以信任它是安全的,但这可能是一个有趣的实验来解决这个问题。最重要的部分是在编程语言中使用标准加密方法,如果是php,请使用openssl包。
使用salt进行哈希处理在这里没什么用,因为哈希是一种单向操作,因此即使拥有数据的用户也无法对其进行解密。
我会选择像
这样的东西我建议使用AES-256-CBC进行加密。
如果这不仅仅用于实验或学习,我建议先搜索现有的解决方案。
另外请记住,如果用户忘记密码,将无法获取数据