java - 使用 Java 技术存储 UII 和 PII 的加密算法
问题描述
什么类型的算法(例如 AES)可用于使用 Java 技术加密/存储用户的个人身份信息 (PII) 和唯一身份信息 (UII)?
例如,加密/存储社会安全号码 (SSN) 和生日的标准方法是什么?
它只是使用特定算法加密这些数据,然后将其存储在数据库中?
Java 开发人员可以使用任何第三方开源库吗?
解决方案
我不是律师,但我认为这取决于。
我认为没有特殊的库可以添加到您的项目中并符合 GDPR。
大部分 GDPR 合规性都在组织方面:征得用户同意为给定目的处理数据,将您的数据收集限制在您绝对需要的范围内(例如,当有人注册您的电子邮件地址时,不要要求提供任何其他内容)时事通讯),允许人们查看您存储了哪些数据,允许人们删除或更正他们的数据。与为您处理数据的人员和公司签订合同。记录您的数据收集和存储。有一个数据保护官和一个如何处理人们数据的计划。
如果你想对用户数据进行假名化,AES 是一个糟糕的选择,因为它是可逆的。散列函数会更好。这样,您可以例如对服务器日志中的所有 IP 地址进行散列处理,并且仍然能够看到 x% 的流量仅来自一个 IP 地址。如果您想匿名用户数据,只需将其删除,例如,从您的服务器日志中完全删除 IP 地址。
在将数据存储到数据库之前对其进行加密也可能是一个有争议的问题,因为您仍然拥有解密的密钥(甚至可能在同一系统的某个地方),它并不能真正提供太多保护。
GDPR 确实要求保护用户的数据,这涉及到技术(即使用最新的 TLS 版本进行网络连接、加密硬盘驱动器并将密钥保存在银行保险库中)和物理安全(将服务器放在一个安全的地方,门口有一只卑鄙的狗和一个卑鄙的保安)。
推荐阅读
- javascript - 如何使用 for 循环正确排序单词长度数组?
- angular - 你能在 VS Code 中自动添加 Angular 导入吗?
- ionic-framework - Ionic 3.8 不支持 HMS Cordova Push 套件
- python - Asyncio 和 Discord.py 超时上下文管理器应该在任务中使用
- pandas - 将列条目与数组或列表进行比较
- postgresql - 错误:函数 btrim(text[]) 不存在 - REGEXP_MATCHES 上的 BTRIM
- javascript - jQuery 在 laravel-mix (webpack) 中不起作用
- python - 使用 openpyxl 提取具有公式的单元格的值
- reactjs - 新文档未在 word 应用程序中打开,内容包含在 word 插件开发中 - React js
- rest - REST:当请求更改多个实体的状态时返回什么?