源码依赖开源软件OpenSSL的crypto/aes/aes_core.c、crypto/aes/aes.h、crypto/aes/aes_locl.h共3个文件。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "aes.h"
#define M3U8_PATH "C:/Source/1/m3u8/"
#define M3U8_KEY "03c01165beea11bd"
#define M3U8_OUT_FILE "C:/Source/1/all.ts"
#define M3U8_COUNT 0xFFFF
int decodeAES128CBC(const char *inPath, FILE *out,
const char userKey[16], unsigned char ivec[16]) {
FILE *in;
int i, n;
unsigned char outTemp[16], inTemp[16];
AES_KEY key;
in = fopen(inPath, "rb");
if (in == NULL) return errno;
fseek(in, 0L, SEEK_END);
n = (int) (ftell(in) / 16);
fseek(in, 0L, SEEK_SET);
AES_set_decrypt_key((const unsigned char*) userKey, 128, &key);
while (n > 0) {
fread(inTemp, 1, 16, in);
AES_decrypt(inTemp, outTemp, &key);
for (i = 0; i < 16; i++) {
outTemp[i] ^= ivec[i];
ivec[i] = i

最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



