是否有一种数据库无关的方法来加密jdbc数据库上的密码?我们使用的是java 8。
我知道当您知道您将使用哪个数据库时,您可以这样做,但是当我们使用多个平台支持我们的客户时,我们需要一种不可知的方法。
编辑添加:例如,我知道在mysql中有一些字符串函数可以在sql语句中使用。我以为我还没找到解决办法。
Name Description
AES_DECRYPT() Decrypt using AES
AES_ENCRYPT() Encrypt using AES
DECODE() Decodes a string encrypted using ENCODE()
DES_DECRYPT() Decrypt a string
DES_ENCRYPT() Encrypt a string
ENCODE() Encode a string发布于 2016-12-08 10:53:30
在寻找我编辑的例子之后,我在前一篇文章中找到了这个答案,我同意它。
当然,如果您编写自己的例程,假设您将密钥存储在数据库中或数据库可以访问的某个地方,那么您就不会为安全性做太多事情。通过网络发送未加密的密码是不好的,但是将未加密的密码存储在数据库中通常要糟糕得多(如果数据库中有解密方法可以访问解密数据的密钥,则存储加密的密码)。从数据库中窃取数据通常比通过网络搜索数据以找到密码要容易得多。
发布于 2016-12-08 10:42:58
使用行业标准最佳实践,您可能希望将编码的密码Base64的咸散列或十六进制字符串存储在普通varchar/text列中。加密需要在Java端完成,但最终它不过是将字符串存储在表中而已。这应该与数据库无关,因为它是一个基本的JDBC操作。
https://stackoverflow.com/questions/41037036
复制相似问题