Decrypt AES encrypted file in java

前端 未结 4 2009
一生所求
一生所求 2021-02-06 17:42

I have a file encrypted with java application using AES. I also have a key file was encrypted with. But i can\'t understand how to use the key to decrypt file. Most tutorials an

4条回答
  •  迷失自我
    2021-02-06 18:27

    Please try following methods, if might helpful for you.

    private static byte[] cipherData(PaddedBufferedBlockCipher cipher, byte[] data)
            throws Exception
    {
        int minSize = cipher.getOutputSize(data.length);
        byte[] outBuf = new byte[minSize];
        int length1 = cipher.processBytes(data, 0, data.length, outBuf, 0);
        int length2 = cipher.doFinal(outBuf, length1);
        int actualLength = length1 + length2;
        byte[] result = new byte[actualLength];
        System.arraycopy(outBuf, 0, result, 0, result.length);
        return result;
    }
    
    private static byte[] decrypt(byte[] cipher, byte[] key, byte[] iv) throws Exception
    {
        PaddedBufferedBlockCipher aes = new PaddedBufferedBlockCipher(new CBCBlockCipher(
                new AESEngine()));
        CipherParameters ivAndKey = new ParametersWithIV(new KeyParameter(key), iv);
        aes.init(false, ivAndKey);
        return cipherData(aes, cipher);
    }
    
    private static byte[] encrypt(byte[] plain, byte[] key, byte[] iv) throws Exception
    {
        PaddedBufferedBlockCipher aes = new PaddedBufferedBlockCipher(new CBCBlockCipher(
                new AESEngine()));
        CipherParameters ivAndKey = new ParametersWithIV(new KeyParameter(key), iv);
        aes.init(true, ivAndKey);
        return cipherData(aes, plain);
    }
    

提交回复
热议问题