分析优酷2016.04最新视频加密算法

简介: 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_21158419/article/details/51118506 ...
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_21158419/article/details/51118506
算法整理
 
// 使用到的加密算法//
function rc4(a, b) {
	for (var c, d = [], e = 0, f = "", g = 0; 256 > g; g++)
		d[g] = g;
	for (g = 0; 256 > g; g++)
		e = (e + d[g] + a.charCodeAt(g % a.length)) % 256, c = d[g], d[g] = d[e], d[e] = c;
	g = 0,
	e = 0;
	for (var h = 0; h < b.length; h++)
		g = (g + 1) % 256, e = (e + d[g]) % 256, c = d[g], d[g] = d[e], d[e] = c, f += String.fromCharCode(b.charCodeAt(h)^d[(d[g] + d[e]) % 256]);
	return f
}
function translate(a, b) {
	for (var c = [], d = 0; d < a.length; d++) {
		var e = 0;
		e = a[d] >= "a" && a[d] <= "z" ? a[d].charCodeAt(0) - "a".charCodeAt(0) : a[d] - "0" + 26;
		for (var f = 0; 36 > f; f++)
			if (b[f] == e) {
				e = f;
				break
			}
		e > 25 ? c[d] = e - 26 : c[d] = String.fromCharCode(e + 97)
	}
	return c.join("")
}
function decode64(a) {
	if (!a)
		return "";
	a = a.toString();
	var b,
	c,
	d,
	e,
	f,
	g,
	h,
	i = new Array(-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1);
	for (g = a.length, f = 0, h = ""; g > f; ) {
		do
			b = i[255 & a.charCodeAt(f++)];
		while (g > f && -1 == b);
		if (-1 == b)
			break;
		do
			c = i[255 & a.charCodeAt(f++)];
		while (g > f && -1 == c);
		if (-1 == c)
			break;
		h += String.fromCharCode(b << 2 | (48 & c) >> 4);
		do {
			if (d = 255 & a.charCodeAt(f++), 61 == d)
				return h;
			d = i[d]
		} while (g > f && -1 == d);
		if (-1 == d)
			break;
		h += String.fromCharCode((15 & c) << 4 | (60 & d) >> 2);
		do {
			if (e = 255 & a.charCodeAt(f++), 61 == e)
				return h;
			e = i[e]
		} while (g > f && -1 == e);
		if (-1 == e)
			break;
		h += String.fromCharCode((3 & d) << 6 | e)
	}
	return h
}
function encode64 (a) {
	if (!a)
		return "";
	a = a.toString();
	var b,
	c,
	d,
	e,
	f,
	g,
	h = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
	for (d = a.length, c = 0, b = ""; d > c; ) {
		if (e = 255 & a.charCodeAt(c++), c == d) {
			b += h.charAt(e >> 2),
			b += h.charAt((3 & e) << 4),
			b += "==";
			break
		}
		if (f = a.charCodeAt(c++), c == d) {
			b += h.charAt(e >> 2),
			b += h.charAt((3 & e) << 4 | (240 & f) >> 4),
			b += h.charAt((15 & f) << 2),
			b += "=";
			break
		}
		g = a.charCodeAt(c++),
		b += h.charAt(e >> 2),
		b += h.charAt((3 & e) << 4 | (240 & f) >> 4),
		b += h.charAt((15 & f) << 2 | (192 & g) >> 6),
		b += h.charAt(63 & g)
	}
	return b
}
//YKP.userCache.sid & YKP.userCache.token 算法//
YK.mk.a3 = "b4et"
YKP.userCache.a1 = 4
d = [19, 1, 4, 7, 30, 14, 28, 8, 24, 17, 6, 35, 34, 16, 9, 10, 13, 22, 32, 29, 31, 21, 18, 3, 2, 23, 25, 27, 11, 20, 5, 15, 12, 0, 33, 26]
b.security.encrypt_string = json数据中的security.encrypt_string值
e = rc4(translate(YK.mk.a3 + "o0b" + YKP.userCache.a1, d).toString(), decode64(b.security.encrypt_string))
YKP.userCache.sid = e.split("_")[0]
YKP.userCache.token = e.split("_")[1]


//n为视频分段数量//
n获取方式
n = v.toString(16)
v = json数据表 stream 数组通过下面的m值确定格式再在对应格式内部获取segs数组的成员数

//m为视频格式//
m获取方式
先从json数据表 stream 数组中获取 stream_type的值
通过stream_type的值查询字典l
l = {
	flv : "flv",
	mp4 : "mp4",
	hd2 : "flv",
	mp4hd : "mp4",
	mp4hd2 : "mp4",
	"3gphd" : "mp4",
	"3gp" : "flv",
	flvhd : "flv"
}
得到m值

//e为视频段主要数据//
o.stream_fileid 获取方式
json数据表 stream 数组通过下面的m值确定格式再在对应格式内部获取stream_fileid值
e  = getFileId(o.stream_fileid, v)
getFileId : function (a, b) {
	if (null == a || "" == a)
		return "";
	var c = "",
	d = a.slice(0, 8),
	e = b.toString(16);
	1 == e.length && (e = "0" + e),
	e = e.toUpperCase();
	var f = a.slice(10, a.length);
	return c = d + e + f
}
//p值//
1.新算法
p = h.segs[v].key;
h = c.stream[a]

2.旧算法
p = h.key2 + h.key1

//k值//
先从json数据表 stream 数组中获取 stream_type的值d
通过stream_type的值查询字典j
k = j[d]
j = {
	flv : 0,
	flvhd : 0,
	mp4 : 1,
	hd2 : 2,
	"3gphd" : 1,
	"3gp" : 0
}

//o值//
o = h.segs[b].total_milliseconds_video / 1e3

//YK.v.data.security.ip//
json数据表 security中获取ip

//t值//
YK.mk.a4 = "boa4"
YKP.userCache.a2 = 1
s = d
t = encodeURIComponent(encode64(rc4(translate(YK.mk.a4 + "poz" + YKP.userCache.a2, s).toString(), YKP.userCache.sid + "_" + e + "_" + YKP.userCache.token)));

不写完全,懂的人自然懂 ,我也避免一些不必要的麻烦微笑

目录
相关文章
|
3月前
|
机器学习/深度学习 边缘计算 算法
NOMA和OFDMA优化算法分析
NOMA和OFDMA优化算法分析
238 127
|
5月前
|
数据采集 机器学习/深度学习 算法
别急着上算法,咱先把数据整明白:大数据分析的5个基本步骤,你都搞对了吗?
别急着上算法,咱先把数据整明白:大数据分析的5个基本步骤,你都搞对了吗?
225 4
|
2月前
|
存储 搜索推荐 算法
加密算法、排序算法、字符串处理及搜索算法详解
本文涵盖四大类核心技术知识。加密算法部分介绍了对称加密(如 AES)、非对称加密(如 RSA)、哈希摘要(如 SHA-2)、签名算法的特点及密码存储方案(加盐、BCrypt 等)。 排序算法部分分类讲解了比较排序(冒泡、选择、插入、归并、快排、堆排序)和非比较排序(计数、桶、基数排序)的时间复杂度、适用场景及实现思路,强调混合排序的工业应用。 字符串处理部分包括字符串反转的双指针法,及项目中用正则进行表单校验、网页爬取、日志处理的实例。 搜索算法部分详解了二分查找的实现(双指针与中间索引计算)和回溯算法的概念(递归 + 剪枝),以 N 皇后问题为例说明回溯应用。内容全面覆盖算法原理与实践
127 0
|
2月前
|
人工智能 自然语言处理 算法
2025 年 7 月境内深度合成服务算法备案情况分析报告
2025年7月,中央网信办发布第十二批深度合成算法备案信息,全国389款产品通过备案,服务提供者占比超七成。截至7月14日,全国累计备案达3834款,覆盖文本、图像、音视频等多模态场景,广泛应用于生活服务、医疗、金融等领域。广东以135款居首,数字人、AI客服等C端应用主导,民营企业成主力,国企聚焦公共服务。随着AI政策推动,备案已成为AI产品合规上线关键环节。
|
3月前
|
算法 数据安全/隐私保护
基于混沌加密的遥感图像加密算法matlab仿真
本项目实现了一种基于混沌加密的遥感图像加密算法MATLAB仿真(测试版本:MATLAB2022A)。通过Logistic映射与Baker映射生成混沌序列,对遥感图像进行加密和解密处理。程序分析了加解密后图像的直方图、像素相关性、信息熵及解密图像质量等指标。结果显示,加密图像具有良好的随机性和安全性,能有效保护遥感图像中的敏感信息。该算法适用于军事、环境监测等领域,具备加密速度快、密钥空间大、安全性高的特点。
|
5月前
|
存储 监控 算法
员工行为监控软件中的 Go 语言哈希表算法:理论、实现与分析
当代企业管理体系中,员工行为监控软件已逐步成为维护企业信息安全、提升工作效能的关键工具。这类软件能够实时记录员工操作行为,为企业管理者提供数据驱动的决策依据。其核心支撑技术在于数据结构与算法的精妙运用。本文聚焦于 Go 语言中的哈希表算法,深入探究其在员工行为监控软件中的应用逻辑与实现机制。
146 14
|
6月前
|
自然语言处理 算法 安全
境内深度合成服务算法备案通过名单分析报告
本报告基于《境内深度合成服务算法备案通过名单》,分析了2023年6月至2025年3月公布的10批备案数据,涵盖属地分布、行业应用及产品形式等多个维度。报告显示,深度合成算法主要集中于经济发达地区,如北京、广东、上海等地,涉及教育、医疗、金融、娱乐等多行业。未来趋势显示技术将向多模态融合、行业定制化和安全合规方向发展。建议企业加强技术研发、拓展应用场景、关注政策动态,以在深度合成领域抢占先机。此分析旨在为企业提供参考,助力把握技术发展机遇。
境内深度合成服务算法备案通过名单分析报告
|
6月前
|
供应链 算法 搜索推荐
从公布的前十一批其他算法备案通过名单分析
2025年3月12日,国家网信办发布算法备案信息,深度合成算法通过395款,其他算法45款。前10次备案中,深度合成算法累计3234款,其他类别647款。个性化推送类占比49%,涵盖电商、资讯、视频推荐;检索过滤类占31.53%,用于搜索优化和内容安全;调度决策类占9.12%,集中在物流配送等;排序精选类占8.81%,生成合成类占1.55%。应用领域包括电商、社交媒体、物流、金融、医疗等,互联网科技企业主导,技术向垂直行业渗透,内容安全和多模态技术成新增长点。未来大模型检索和多模态生成或成重点。
从公布的前十一批其他算法备案通过名单分析
|
6月前
|
人工智能 自然语言处理 供应链
从第十批算法备案通过名单中分析算法的属地占比、行业及应用情况
2025年3月12日,国家网信办公布第十批深度合成算法通过名单,共395款。主要分布在广东、北京、上海、浙江等地,占比超80%,涵盖智能对话、图像生成、文本生成等多行业。典型应用包括医疗、教育、金融等领域,如觅健医疗内容生成算法、匠邦AI智能生成合成算法等。服务角色以面向用户为主,技术趋势为多模态融合与垂直领域专业化。
|
6月前
|
存储 监控 算法
taosd 写入与查询场景下压缩解压及加密解密的 CPU 占用分析
在当今大数据时代,时序数据库的应用越来越广泛,尤其是在物联网、工业监控、金融分析等领域。TDengine 作为一款高性能的时序数据库,凭借独特的存储架构和高效的压缩算法,在存储和查询效率上表现出色。然而,随着数据规模的不断增长,在保证数据安全性和存储效率的同时,如何优化 CPU 的资源占用,成为了一个值得深入讨论的问题。
122 1

热门文章

最新文章