数据库敏感字段加密升级流程以及问题解决

  1. 技术经理/架构师梳理出需要同时升级的系统(剩余的系统可单独升级),包括:
    1. 使用相同数据库的不同系统(如门店的2个系统)
    2. 数据库之间存在DTS关联关系
  2. 对于同时升级的系统,评估代码升级和刷数据所需的时间,并划定统一升级的时间点
  3. 由各系统对应的技术经理梳理需要加解密的表字段,并通知大数据;大数据跟随业务系统加解密字段进行升级,并跟业务系统对齐排期
  4. 业务系统和大数据建立备用加密字段,把加密数据刷入该字段。注意加密字段的长度会显著大于原字段长度,需考虑字段长度的扩容。数据库操作函数参考:
    • 设置加密方法: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个实际字符。
  5. 升级当天预留时间窗口,刷入新增数据,并修改字段名。(目前我们内部讨论下来,只能新增字段,改造系统,发布完之后 再把老字段删掉,再走一次发布
    )
  6. 如果加密升级后长度超过255:
    1. 该字段未使用索引,考虑使用TextMediumText来存储。
    2. 该字段使用了索引,暂不改造。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值