是否可以使用java向音频文件添加水印?

是否可以使用java向音频文件添加水印?,java,Java,我有一个应用程序,它正在检查音频文件是否被编辑。在那之后,我应该知道是否有人编辑了这个音频文件。我正在考虑在音频文件中添加一个水印,以便稍后检查水印是否已更改,并知道音频文件是否已编辑 另外,java中是否有其他音频编辑保护方法?有一种方法适用于任何文件,而不仅仅是音频。 您可以使用哈希算法计算和比较校验和 Java在Java.security.MessageDigest包中内置了此功能 获取校验和,考虑此代码片段: try (FileInputStream inputStream = new

我有一个应用程序,它正在检查音频文件是否被编辑。在那之后,我应该知道是否有人编辑了这个音频文件。我正在考虑在音频文件中添加一个水印,以便稍后检查水印是否已更改,并知道音频文件是否已编辑


另外,java中是否有其他音频编辑保护方法?

有一种方法适用于任何文件,而不仅仅是音频。 您可以使用哈希算法计算和比较校验和

Java在
Java.security.MessageDigest
包中内置了此功能

获取校验和,考虑此代码片段:

try (FileInputStream inputStream = new FileInputStream(file)) {
    MessageDigest digest = MessageDigest.getInstance("MD5");

    byte[] bytesBuffer = new byte[1024];
    int bytesRead = -1;

    while ((bytesRead = inputStream.read(bytesBuffer)) != -1) {
        digest.update(bytesBuffer, 0, bytesRead);
    }

    byte[] hashedBytes = digest.digest();

    return convertByteArrayToHexString(hashedBytes);
} catch (NoSuchAlgorithmException | IOException ex) {
    throw new HashGenerationException(
            "Could not generate hash from file", ex);
}
此方法体返回输入文件的哈希字节数组的字符串表示形式。您可以对原始文件和可疑文件调用此代码并进行比较。如果字符串匹配,则文件相同


代码剪切使用fast MD5 angorithm,但您可以从

中选择更安全的文件,为什么不将原始文件的大小与新文件的大小进行比较?如果它较大或较小,则它被编辑。或者保存创建/上传/任何内容时的日期,并与修改日期进行比较。为什么不使用哈希?而不是水印,比较校验和。非常感谢rply。。但如何在音频文件中使用check-some,如何识别音频是否已编辑?我也使用过checksum,但对如何使用它感到困惑?