使用 PHP 隐藏音频文件中的文本

Hide text inside audio file with PHP

是否可以通过 PHP 将隐藏字符串添加到音频文件(MP3,mid)?

我有一家在线音乐商店,我的一些客户转售这些歌曲,我想在音频文件中隐藏他的电子邮件地址以识别他们。

音频文件

对于真正的音频文件(不是MIDI,它不是真正的音频文件),最好的方法是使用音频水印。有许多算法和工具(例如 AWT)可以从您的 PHP 脚本中执行来处理这个问题。他们通过以一种无法感知但可以解码的方式修改音频数据来工作。

这些算法中的大多数都可以对水印进行编码,使其在使用其他编解码器进行重新编码后仍然存在。这与您的要求有很大的不同。如果您只是想添加一个 ID3 标签,任何工具都可以将其删除。事实上,您的标签很可能会被读取和重写您的 ID3 标签的工具删除。然而,随着实际音频本身中嵌入的信息,它会存活下来。如果有人解码文件并使用另一个编解码器重新编码,根据您的水印算法,水印仍然会存在。即使有人在另一个流中流式传输它,水印也可以保留。

and I want to hide his e-mail address in the audio file to identify them

您不应嵌入个人身份信息,而应存储您在自己的数据库中保存的 ID 或 ID 的哈希值。如果您为每次下载生成一个新 ID 可能会更好,这样如果您需要找到转售您文件的用户,您可以证明他们下载文件的时间和 IP 地址,以及您希望的任何其他信息保存在您的数据库中。

MIDI 文件

对于 MIDI,您必须将您的 ID 嵌入到文件的元数据中。这很容易被击败,可能根本不值得你花时间。