0

我想为 Java 应用程序创建一个安装程序,并找到了一些很棒的应用程序。问题是我正在使用 Jasypt 加密属性文件中使用的密码。目前用户必须使用 Jasypt 命令行来加密他们的密码,然后在属性文件中输入加密的密码。然后他们必须在 Java 中包含加密密钥,这意味着编辑和重新编译。显然有一种更简单的方法可以做到这一点。我最终希望有一个安装程序来询问密码,对其进行加密,存储密钥,然后安装应用程序。我不是 Java 程序员 :( 更像是一个黑客。:) 谢谢!

4

1 回答 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 回答