首先定义一个常量:
public static final String MYSQL_ENTRYPT_KEY = “key”;
类名:
cn.test.hsm.common.Constant
在mapper.xml中:
1,在添加数据的时候将字段loginNmae加密
HEX(AES_ENCRYPT(#{loginName},’${@cn.test.hsm.common.Constant@MYSQL_ENTRYPT_KEY}’)),
2,在查询加密字段login_name的时候:
AES_DECRYPT(UNHEX(login_name),’${@cn.test.hsm.common.Constant@MYSQL_ENTRYPT_KEY}’) as login_name,
注意:as 后面的别名是和数据字段对应的字段名
如图我在user表里插入了一条数据将用户密码‘123456’加密,密钥为‘key2’;
添加数据结果如上图,可见密码加密为我们不能识别的
上图为查询出来的的结果 可以看到字段名并不是password 而是我们在sql语句中的解密的字段的语句,在mapper.xml中要和实体类对应所以要用到别名 不然查出来的数据不能和实体类对应,会返回null。
所以用这个加密方法只要在mybatis的xml里加上别名,就好了!!!
新人请多包涵。