Encryption 如何编写库来解密某些内容,而不以明文形式写入密钥?

Encryption 如何编写库来解密某些内容,而不以明文形式写入密钥?,encryption,key,shared,cleartext,Encryption,Key,Shared,Cleartext,我使用一个utils库来加密/解密数据,只需调用具有以下签名的方法: String encrypt(String clearText, String secretKey) String decrypt(String encryptedText, String secretKey) 两种加密/解密方法使用相同的逻辑和加密。这意味着对方法的相同输入总是产生相同的输出 现在的目的是编写一个helper方法,使用encrypt方法对以前存储在文件中的一些连接字符串进行解密。此帮助器方法应调用decry

我使用一个utils库来加密/解密数据,只需调用具有以下签名的方法:

String encrypt(String clearText, String secretKey)
String decrypt(String encryptedText, String secretKey)
两种加密/解密方法使用相同的逻辑和加密。这意味着对方法的相同输入总是产生相同的输出

现在的目的是编写一个helper方法,使用encrypt方法对以前存储在文件中的一些连接字符串进行解密。此帮助器方法应调用decrypt函数,使用明文形式的secretKey调用该函数:

String connectionStringEncrypted = Utils.getProperty("connectionString", "C:\\Path\\To\\application.properties");
String connectionString = Utils.decryptConnectionString(connectionStringEncrypted);

问题是:如何避免在助手方法Utils.decryptConnectionString中以明文形式写入密钥?

有太多简单和复杂的方法来解决此问题 从简单的方法开始,我可以说出一些

  • 只需将密钥编码为Base64。使用Base64解码功能放置编码密钥。因此文本看起来不可读。在执行期间,解码函数执行,原始密钥传递到解密函数

  • 在具有不同静态变量(易于访问)的不同类中拆分和放置密钥,并在decrypt方法中传递要附加的所有静态变量以形成有效的解密密钥 注:-这些简单步骤可由专业人员预测

高级方法:

  • 使用RSA算法使用不同的密钥进行加密和解密(即公钥和私钥)
  • 您还可以尝试将密钥隐藏在加密文本中。在这里,您不需要使用静态键。该过程包括生成新密钥、加密文本和在加密文本中隐藏密钥、保存在文件中、解密期间从文件中获取加密文本、提取密钥、解密数据。注意:-此方法必须小心处理

谢谢。我认为,第一种简单方法和第二种高级方法的结合可能非常复杂,足以将密码隐藏在加密文本中。