Java多级aes de / encrypting失败

时间:2013-03-01 15:01:27

标签: java encryption base64 aes encryption-symmetric

我的任务是解密使用以下标准加密的Java文件:

加密:

`

byte[] masterKey;
    if (Base64.decode(config.getProperty("encrMasterKey")) != null) {
        masterKey=aes.decrypt(Base64.decode(config.getProperty("encrMasterKey")),"password");
    } else {
        masterKey = aes.keyGeneration();
        byte[] encrMasterKey = aes.encrypt(masterKey, keyderivation("password"));
       writeToConfigFile("encrMasterKey", Base64.encode(encrMasterKey));
    }
    Cipher cipher = Cipher.getInstance("AES");
    SecretKeySpec keySpec = new SecretKeySpec(masterKey, "AES");
    cipher.init(Cipher.ENCRYPT_MODE, keySpec);
    byte[] cypherText = aes.encrypt(myJSONString,masterKey);'

什么有效:

  1. 我可以使用AES加密/解密,包括byte []和密码派生密钥(keyderivation(“password”))
  2. 我可以从配置文件中正确保存和加载。实际上我测试过并且生成的Base64encoded(masterKey)与Base64.encode相同(aes.decrypt(Base64.decode(config.getProperty(“encrMasterKey”)),“password”)))
  3. 什么不是:

        Cipher cipher = Cipher.getInstance("AES");
        SecretKeySpec keySpec = new SecretKeySpec(masterKey, "AES");
        cipher.init(Cipher.ENCRYPT_MODE, keySpec);
    

    在cipher.init中,java会抛出非法键或默认参数错误。

    我真的很感激这个暗示,一直困扰我好几天,我似乎无法修复它......

    祝福

0 个答案:

没有答案
相关问题