我有一个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: 我应该如何处理块中的流文件?是否有任何专门的课程可以为我处理?我会非常感谢任何能让我开始的建议。