邮箱存数据库选用哪种加密方案?

1. 问题描述

想要加密保存用户的邮箱,因为其他业务会读取邮箱,所以需要可逆的加密方式
还需要能去重。请教下大佬们有没有好的方案推荐,或者说最佳实践?

看了下面这个方法似乎不太合适,生成的字符串太长,不能作为唯一识别

// 生成的加密字符串为了防篡改带了签名,每次加密都会改变,如果想要去重还需要单独加个字段存唯一标识
Crypt::encryptString();
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

AES-128-CBCAES-256-CBC且使用固定的key和iv

  1. 同一字符串多次加密后的密文相同(方便去重和查询)
  2. 密文相对较短(相较其它加密方案)
1年前 评论
tomcath (楼主) 1年前
讨论数量: 9

对称加密算法皆可。例如DES。

1年前 评论
tomcath (楼主) 1年前
xiaochong0302

一般加密后都会比较长,你搞个中间表呗

1年前 评论

AES-128-CBCAES-256-CBC且使用固定的key和iv

  1. 同一字符串多次加密后的密文相同(方便去重和查询)
  2. 密文相对较短(相较其它加密方案)
1年前 评论
tomcath (楼主) 1年前

即使使用对称加密,后期如果需要改秘钥就麻烦了。可以邮箱字段md5加密,冗余一个字段(或者加一个中间表)保存邮箱原始数据

1年前 评论
tomcath (楼主) 1年前
╰ゝSakura

其他业务会读取邮箱,不应该统一从你提供的服务出去嘛,你在服务里面做脱敏啊,大佬

1年前 评论
tomcath (楼主) 1年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!