我一直在开发一种使用 AES-256 加密来写入文件的软件。我正在使用Eclipse 64 位和 JDK7。问题是当我编译和执行代码时,它可以完美地工作,加密和解密算法。当我打包 Runnable JAR 并运行它时,它也可以正常工作......但是当我使用 Advanced Installer 9.4 将Runnable JAR打包到 Windows 可执行文件 (.exe) 时,安装它(W7 32 位和 64 位).. .a NoSuchProviderException弹出,任何东西都被加密/解密。
我需要将此软件分发给许多用户,但找不到运行 .exe 的方法
public static String AES_Encode(String str, String key) throws Exception {
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
SecretKeySpec secretKey = new SecretKeySpec(key.getBytes("UTF-8"), "AES");
cipher.init(Cipher.ENCRYPT_MODE, secretKey);
String encryptedString = Base64.encodeBase64String(cipher.doFinal(str.getBytes("UTF-8")));
return encryptedString;
}
public static String AES_Decode(String str, String key) throws Exception {
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
SecretKeySpec secretKey = new SecretKeySpec(key.getBytes("UTF-8"), "AES");
cipher.init(Cipher.DECRYPT_MODE, secretKey);
String decryptedString = new String(cipher.doFinal(Base64.decodeBase64(str)),"UTF-8");
return decryptedString;
}
当我在 Windows 中运行该软件后,我试图显示可用的提供程序,但SunJCE 或 JCE不可用;尽管它们是在我运行 JAR 或编译后的代码时出现的。有什么我可以做的吗?我可以切换到充气城堡吗?如何(我需要在我的项目中集成什么 JAR 或类似文件?)
感谢您的时间和帮助!