我正在探索对mysql中特定列的数据进行加密。我偶然发现了AES_ECRYPT()和AES_DECRYPT()函数,但问题是我在java中使用Hibernate, @ColumnTransformer注释需要值保持不变,即在编译时可用。但我知道这不是一个很好的做法硬编码密钥从同一台服务器,所以我想把它存储在一个外部服务器,并通过API获得密钥。但是我如何使@ColumnTransformer工作呢?
我应该只在应用程序级别加密和解密并将加密的数据作为varchar存储在mysql中吗?如有任何帮助或建议,不胜感激。
我认为通过API调用获取键不是最佳解决方案。考虑一下在键检索API不可用的情况下会发生什么。这种情况会阻碍应用程序的正确行为。我同意硬编码值不是正确的做法。
您可以通过应用程序或数据库(如果支持)的配置属性公开键。此外,您还可以使用Spel来调用一个方法来动态返回所需值,从而解决注释中常量的需求。