0

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

String encrypt(String clearText, String secretKey)
String decrypt(String encryptedText, String secretKey)

两种加密/解密方法都使用相同的逻辑和加密。这意味着方法的相同输入总是产生相同的输出。

现在的目的是编写一个辅助方法来解密以前使用 encrypt 方法存储在文件中的一些连接字符串。此辅助方法应调用解密函数,并以明文形式使用 secretKey 调用它:

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

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

4

1 回答 1

1

有太多简单和复杂的方法来解决这个问题我可以告诉一些,从简单的方法开始

  • 只需将密钥编码为 Base64。使用 Base64 解码功能放置编码的密钥。所以文字看起来不可读。在执行过程中,解码函数执行,原始密钥传递给解密函数

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

高级方法:

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