封面/截图加密对接教程

开启图片加密后,基本上EFV生成的封面、截图全部会被加密乱码,完全看不到任何实质内容,需前端解密调用。

对接之前请先了解下封面截图加密的原理及设置 ⇒ 传送门,这里只提供一个前端html使用示例,然后自行对接。

HTML示例

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>EFV加密图片解密展示</title>
</head>
<body>
<img id="decodedImage" src="" alt="解密后的图片将显示在这里">

<script>
function fetchEncryptedImage() {
    return fetch('http://127.0.0.1:3000/videos/202403/08/65eb06d5561d9e3d0b990740/2.jpg').then(response => response.arrayBuffer());
}

// 解密函数,对图片数据的前9个字节进行XOR操作
function decryptImage(data) {
    let view = new Uint8Array(data);
    for (let i = 0; i < Math.min(9, view.length); i++) {
        view[i] = view[i] ^ 0x12; // 使用0x12作为密钥
    }
    return data;
}

// 将解密后的图片数据设置为img元素的src属性
function displayDecryptedImage(data) {
    let blob = new Blob([data]);
    let url = URL.createObjectURL(blob);
    document.getElementById('decodedImage').src = url;
}

// 加载并解密图片
fetchEncryptedImage().then(encryptedData => {
    let decryptedData = decryptImage(encryptedData);
    displayDecryptedImage(decryptedData);
}).catch(error => console.error('加载或解密图片时出错:', error));
</script>
</body>
</html>