我现在有个棘手的情况。
我需要创建一个android方法,该方法将解密已被加密的文件,如下所示:
(Rijndael)
{ 0、1、1、2、3、5、8、13、21、34、55、89、144、233、122、100 }
我也知道文件的加密密钥,但现在让我们说它是:“船”
我一直在谷歌搜索,但我找不到一个在线使用这种加密组合。有些涉及Rijndael算法,但不允许我选择初始化向量,而另一些则根本不支持AES256。
有人能为我指出正确的方向吗?在哪里可以找到一个示例或发布一些做上述工作的示例代码?
注:我不知道是否重要,但输出文件总是.pdf
发布于 2012-06-01 00:24:32
这是一个非常标准的配置,很难相信你没有找到任何样本。您所需要做的就是从您的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);
顺便说一下,'Rijndael‘和AES是一样的,所以只要搜索'AES’就可以得到更好的结果。
https://stackoverflow.com/questions/10846650
复制相似问题