在CTR模式下使用AES 128以块的形式解码媒体文件

时间:2017-09-12 14:35:24

标签: java android encryption aes

我有一个MP3文件,在本地编码并保存在设备上。为了播放文件,我需要在CTR模式下使用AES 128以不大于515b的块来解码它。我对HEX中的每个文件都有一个IV。该文件将使用JWPlayer播放。我有两个问题:

问题1: 首先,我试图将整个文件解码为测试目的。

final String ALGORITHM = "AES";
final String TRANSFORMATION = "AES/CTR/PKCS5Padding";
final byte[] iv = trackIv.getBytes();
SecretKeySpec secretKey = new SecretKeySpec(key, ALGORITHM);
cipher = Cipher.getInstance(TRANSFORMATION);
cipher.init(Cipher.DECRYPT_MODE, secretKey, new IvParameterSpec(iv));

iv是来自我getBytes()的十六进制IV。我收到了:

com.android.org.bouncycastle.jcajce.provider.symmetric.util.BaseBlockCipher$1: CTR/SIC mode requires IV no greater than: 16 bytes.

我的IV长32个字节。我做错了吗?

问题2: 我应该如何处理块中的流文件?是否有任何专门的课程可以为我处理?我会非常感谢任何能让我开始的建议。

0 个答案:

没有答案