使用 JAVA 加密和乱码音频文件

Posted

技术标签:

【中文标题】使用 JAVA 加密和乱码音频文件【英文标题】:Encrypt and garble audio file using JAVA 【发布时间】:2012-12-21 03:13:08 【问题描述】:

我目前正在开展一个项目,使用 JAVA 加密 MP3 音频,并从该加密的 MP3 文件中产生乱码。到目前为止,我可以使用 DES 加密方法加密整个 MP3 文件。但是,此加密文件无法使用 MP3 播放器播放。我知道 MP3 文件有一些结构(标题和数据等),但我不知道在不破坏整个 MP3 结构的情况下对该文件实施加密。

如何让这个加密的 MP3 文件可以播放?

【问题讨论】:

多年前我对 MPEG-2 传输流做了类似的事情 - 加密图片和音频数据,但保留 MPEG 结构,以便其他设备(例如提取所有I 帧)仍然可以操纵文件。但是,恐怕这对于 SO 来说并不是一个足够具体的问题来回答。我想你无论如何都知道答案:你需要分离流并且只加密实际的音频数据...... 是的,我认为这是主要问题:使用 JAVA 程序提取实际的音频数据。我想知道JAVA中是否有这样的程序...谢谢您的回复... 为什么要使用 DES?它缓慢且过时。请改用 AES。如果您不需要身份验证,请使用 AES-CTR 或 AES-CBC。如果您确实需要身份验证,请使用 AES-GCM。 【参考方案1】:

更多关于 java 中解析和 mp3 流的信息:JavaLayer 是一个 mp3 解码器,它自然地实现了流处理,主要使用 javazoom.jl.decoder.Bitstream 类。它将跳过所有标签数据并为您提供每一帧的原始字节。

另一个做一些 mp3 流解析的库是 jaudiotagger,也许你也可以从那里清除一些代码。

这两个库都在 LGPL 下分发,因此请注意许可问题。

【讨论】:

以上是关于使用 JAVA 加密和乱码音频文件的主要内容,如果未能解决你的问题,请参考以下文章

如何用新加密的数据更新部分加密数据?

CDFS格式加密光盘音频提取方法

为啥手机(不限于 iPhone)上的 YouTube 音频出现乱码? [关闭]

如何将音频文件转为base64 编码

使用 iPhone 音频加密狗传输数据

如何使用 java 合并 .webm(音频)文件和 .mp4(视频)文件?