WhiteDG / mybatis-crypto

🔐 A mybatis-based crypto plugin
Apache License 2.0
72 stars 20 forks source link

一个很奇怪的BUG,mapped-key-prefixes 这个值设置的比较复杂时,会导致加密的解密失效 #10

Closed quhaojian closed 1 year ago

quhaojian commented 1 year ago

mapped-key-prefixes 这个我设置为swsalary 后,查询的时候加密器的解密不触发了

WhiteDG commented 1 year ago

你这里说的解密不触发是指查询结果返回了密文而不是明文吗?

quhaojian commented 1 year ago

不好意思 描述有点问题 是设置之后,存到数据库里面的是明文,而不是密文
我打断点,加密器的加密不触发了

WhiteDG commented 1 year ago

可以贴一下你的代码吗?或者提供一个可复现的最小demo

quhaojian commented 1 year ago

可以贴一下你的代码吗?或者提供一个可复现的最小demo

项目是自己实现的IEncryptor mapped-key-prefixes 由et设置为swsalary后 正常的用实体类保存或者修改 加密字段在数据库中从密文变成了明文了

自己调试发现 继承IEncryptor的类中的 encrypt 方法不走了, 查询时decrypt发放正常

你可以本地试一下 看看能复现吗 因为还有其他项目要用 所以想设置一个复杂点的key防止匹配到其他的项目,但是我目前设置过几个比较复杂的key 都会导致最后明文存储

mybatis-crypto: enabled: true fail-fast: true default-encryptor: 我的的加密器的路径 default-key: global-key mapped-key-prefixes: et keep-parameter: true

WhiteDG commented 1 year ago

我自己测试没有复现,所以需要你提供多一点信息,你可以贴一下你的 mapper 和实体类,我猜测有问题的应该是这两部分。