如何使用一个密钥加密多个密码?

时间:2011-08-04 14:06:23

标签: java android

我想使用Java使用一个密钥加密多个密码。我可以使用密钥生成器生成密码,但每次都会生成不同的密钥。 我只想要一个密钥来进行加密。如何使用一个密钥加密多个密码? 另一个问题是,每次运行我的应用程序时,我都会在重新启动应用程序后使用相同的密钥。

2 个答案:

答案 0 :(得分:1)

如果您根据设置的密码短语生成密钥,您将获得相同的密钥(如果所有其他与密钥相关的参数相同)。如果您可以编辑您的问题以提供有关您要使用的加密算法的更多信息,我可以提供更多帮助。

<小时/> 编辑:好的,这是一些基于密码短语生成密钥的示例代码(以便每次都获得相同的密钥):

// 16 characters for 128-bit AES
private final static String PASSPHRASE="myappspassphrase"

SecretKeySpec key = new SecretKeySpec(PASSPHRASE.getBytes("UTF-8"), "AES");

...

// Initialise the cipher
Cipher encryptCipher = Cipher.getInstance("AES");
encryptCipher.init(Cipher.ENCRYPT_MODE, key);

答案 1 :(得分:1)

  1. 生成密钥k
  2. 循环密码(拨打密码p
  3. 使用您选择的加密方案使用p加密每个k
  4. 现在只需定义generateKey()encrypt(String password, String key)

    String key = generateKey();
    String[] encrypted = new String[passwords.length];
    
    for( String password : passwords )
        encrypted = encrypt( password, key );