有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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

另外,在java中还有其他音频编辑保护方法吗


共 (1) 个答案

  1. # 1 楼答案

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

    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);
    }
    

    此方法体返回输入文件的哈希字节数组的字符串表示形式。您可以对原始文件和可疑文件调用此代码并进行比较。如果字符串匹配,则文件相同

    代码截取使用快速MD5 angorithm,但您可以从here:中选择更安全的代码