- 技术经理/架构师梳理出需要同时升级的系统(剩余的系统可单独升级),包括:
- 使用相同数据库的不同系统(如门店的2个系统)
- 数据库之间存在DTS关联关系
- 对于同时升级的系统,评估代码升级和刷数据所需的时间,并划定统一升级的时间点
- 由各系统对应的技术经理梳理需要加解密的表字段,并通知大数据;大数据跟随业务系统加解密字段进行升级,并跟业务系统对齐排期
- 业务系统和大数据建立备用加密字段,把加密数据刷入该字段。注意加密字段的长度会显著大于原字段长度,需考虑字段长度的扩容。数据库操作函数参考:
- 设置加密方法:
SET block_encryption_mode = 'aes-256-cbc';
(在SQL脚本执行之前运行,指定加密方法,会话级别,每次使用之前需执行) - 加密函数:
select TO_BASE64(AES_ENCRYPT('上海银行', 'uBdUx82vPHkDKb284d7NkjFoNcKWBuka', 'c558Gq0YQK2QUlMc')) from dual;
- 解密函数:
select AES_DECRYPT(FROM_BASE64('E5NoyWGQwnMlf1UAUO/Xow=='), 'uBdUx82vPHkDKb284d7NkjFoNcKWBuka', 'c558Gq0YQK2QUlMc') from dual;
- 加密字段的长度计算:加密后的长度取决于原字段的长度,可以按设计长度进行计算。例如:
abcdabcdabcdabcd
加密后结果为sogxg0B8ozqvB5zs/tkb5yH55ccNfEuvr1l/HNluPgk=
,长度为44。 - 注意中文字符的长度:在UTF-8编码下,一个中文字符占2-3个实际字符。
- 设置加密方法:
- 升级当天预留时间窗口,刷入新增数据,并修改字段名。(目前我们内部讨论下来,只能新增字段,改造系统,发布完之后 再把老字段删掉,再走一次发布
) - 如果加密升级后长度超过255:
- 该字段未使用索引,考虑使用
Text
或MediumText
来存储。 - 该字段使用了索引,暂不改造。
- 该字段未使用索引,考虑使用
数据库敏感字段加密升级流程以及问题解决
最新推荐文章于 2025-04-17 14:00:25 发布