加密解密的解决方案
问题: 对会员信息进行加密保存到数据库中 解决方案: 使用mybatis的拦截器拦截对象解密展现到界面中,将对象加密保存到数据库中 执行方案的充分必要条件 保证密钥不进行修改,如果需求更改为需要动态修改密钥,就需要进行二次开发 注册拦截器 影响: 数据库中的敏感数据得到加密,提高安全性 每次执行sql语句时都会触发到拦截器,给后台服务器增加压力 在解密数据和加密数据时,会导致用户等待时间增加 针对对象: 所有经由mybatis层执行的sql语句(不包括hibernate和jdbc) 触发的条件: 更新、插入、查询等操作 操作参数中对象带有加密解密的注解 使用的工具: mybatis拦截器(插件) 涉及到的代码处(逻辑上) 拦截器:AESInterceptor 注解类:DecryptField、EncryptField 枚举类:CorpMemberUpdateFlag 更新的通用工具类:UpdateUtils service层:CorpMemberService controller层:CorpMemberController 注册mybatis的xml文件:mybatis-config.xml 具体实现逻辑 创建加密解密的注解 创建拦截器,拦截dao层的sql语句,判断拦截下来的sql操作 如果是查询或者插入操作,就判断拦截下来的参数中是否有加密的注解,如果有