我想为 Java 应用程序创建一个安装程序,并找到了一些很棒的应用程序。问题是我正在使用 Jasypt 加密属性文件中使用的密码。目前用户必须使用 Jasypt 命令行来加密他们的密码,然后在属性文件中输入加密的密码。然后他们必须在 Java 中包含加密密钥,这意味着编辑和重新编译。显然有一种更简单的方法可以做到这一点。我最终希望有一个安装程序来询问密码,对其进行加密,存储密钥,然后安装应用程序。我不是 Java 程序员 :( 更像是一个黑客。:) 谢谢!
问问题
192 次
1 回答
1
使用Cipher
类来加密/解密密码。
在保存文件之前,使用ENCRYPT_MODE
加密:
String passwordToEncrypt = ....//user entered
byte[] passwordToEncryptBytes = passwordToEncrypt.getBytes();
KeyGenerator keyGen = KeyGenerator.getInstance("AES");
SecretKey mySecretKey = keyGen.generateKey();
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE, mySecretKey);
IvParameterSpec ivParameter =
cipher.getParameters().getParameterSpec(IvParameterSpec.class);
byte[] encryptedPasswordData = cipher.doFinal(passwordToEncryptBytes);
使用encryptedPasswordData
加密文件。
打开文件时,提示输入密码,再次加密并尝试打开文件。如果密码正确,它应该可以通过。
于 2012-10-19T19:45:30.327 回答