转自:http://www.voidcn.com/article/p-yclyxfmw-bug.html
从.m3u8文件中可以看到使用的加解密算法为AES,如下图:
把还没解密的ts视频下载到本地,如下图:
同时看到解密的key为:bxawlp5truoksj7h,如下图:
C#代码如下:
/// <summary>
/// 解密
/// </summary>
/// <param name="folder">路径(文件夹)</param>
/// <param name="encryptionString">解密key</param>
/// <param name="outputFileName">输出的文件名</param>
public static void DescVideo(string folder,string encryptionString,string outputFileName)
{
byte[] encryptionKey = Encoding.UTF8.GetBytes(encryptionString);
string outPutFile = folder + "\\" + outputFileName;
using (FileStream outputFileStream = new FileStream(outPutFile, FileMode.OpenOrCreate))
{
var files = Directory.GetFiles(folder, "*.ts");
for (int i = 0; i < files.Length; i++)
{
byte[] encryptionIV = new byte[16];
using (FileStream inputFileStream = new FileStream(files[i], FileMode.Open))
{
using (var aes = new AesManaged { Key = encryptionKey, IV = encryptionIV, Mode = CipherMode.CBC})
using (var encryptor = aes.CreateDecryptor())
using (var cryptoStream = new CryptoStream(inputFileStream, encryptor, CryptoStreamMode.Read))
{
cryptoStream.CopyTo(outputFileStream);
}
}
}
}
}
调用如下:
var folder = "DownLoad\\Test";
var outputFile = "output.mp4";
string encryptionString = "bxawlp5truoksj7h";
DescVideo(folder, encryptionString, outputFile);
Console.WriteLine("完成");