我想为Java应用程序创建一个安装程序,并找到了一些很棒的应用程序。问题是我使用Jasypt加密属性文件中使用的密码。目前,用户必须使用Jasypt命令行加密其密码,然后在属性文件中输入加密密码。然后,他们必须在Java中包含加密密钥,这意味着编辑和重新编译。显然,有一种更简单的方法可以做到这一点。我最终希望有一个安装程序,要求输入密码,加密,存储密钥,然后安装应用程序。我不是Java程序员:(更多的是黑客。:)谢谢!
答案 0 :(得分: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
加密文件。
打开文件时,提示输入密码,再次加密并尝试打开文件。如果是正确的密码,则应该通过。