此刻我的情况很棘手。
我需要创建一个android方法来解密已加密的加密文件,如下所示:
{0,1,1,2,3,5,8,13,21,34,55,89,144,233,122,100}
我也知道该文件的加密密钥,但现在让我们说:“船”
我一直在谷歌上搜索,但我找不到使用这种加密组合的在线。有些涉及Rijndael算法,但没有让我选择初始化向量,而其他人根本不支持AES256。
有人能指出我找到一个例子的正确方向或发布一些上述代码示例吗?
N.B。我不知道是否重要提及但输出文件始终是.pdf
答案 0 :(得分:1)
这是一个非常标准的配置,很难相信你没有找到任何样品。您需要做的就是从IV字节创建IvParameterSpec
并使用它初始化Cipher
。像这样:
SecretKey key = getEncryptionKey();
byte[] iv = new byte[] { 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, (byte)144, (byte)233, 122, 100 };
byte[] cipherBytes = readEncryptedFile();
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
IvParameterSpec ivParams = new IvParameterSpec(iv);
cipher.init(Cipher.DECRYPT_MODE, key, ivParams);
byte[] plaintext = cipher.doFinal(cipherBytes);
BTW,'Rijndael'与AES相同,所以如果你只是搜索'AES',你会得到更好的结果。