網(wǎng)站首頁 編程語言 正文
python實(shí)現(xiàn)對(duì)AES加密的視頻數(shù)據(jù)流解密的方法_python
作者:Jackey_Song_Odd ? 更新時(shí)間: 2023-05-24 編程語言密碼學(xué)中的高級(jí)加密標(biāo)準(zhǔn)(Advanced Encryption Standard,AES),又稱Rijndael加密法。
在做網(wǎng)絡(luò)爬蟲的時(shí)候,會(huì)遇到經(jīng)過AES加密的數(shù)據(jù),可以使用python來進(jìn)行解密。
在做爬蟲的時(shí)候,通常可以找到一個(gè)key,這個(gè)key是一個(gè)十六進(jìn)制的一串字符,這傳字符是解密的關(guān)鍵。所以對(duì)于想要解密的內(nèi)容,首先要找到這個(gè)key,一般在Chrome瀏覽器按F12鍵,在network里面可以找到這個(gè)key。如下圖:
本例中,以一個(gè)視頻片段為例,視頻片段我已經(jīng)事先保存到電腦中。此時(shí)處于加密狀態(tài)。打開后會(huì)出現(xiàn)下面的結(jié)果:
“此文件無法播放。這可能是因?yàn)槲募愋筒皇苤С帧⑽募U(kuò)展名不正確或文件已損壞。”
這個(gè)加密的視頻片段為 “91j0PUhx.ts”
解密需要導(dǎo)入 Crypto 模塊,需要導(dǎo)入 from Crypto.Cipher import AES
,如果導(dǎo)入的語句報(bào)錯(cuò),這里需要使用 pip 安裝這個(gè)模塊,教程我之前的文章中寫到過,或者到網(wǎng)上找教程,都會(huì)有解決方法,這里不再贅述。
下面直接上代碼:
from Crypto.Cipher import AES import requests with open("91j0PUhx.ts","rb") as FO: # 以二進(jìn)制的形式讀取視頻片段 content = FO.read() # 保存到content中 keyUrl = "" # 這里字符串中填入找到的 key 的 url # 這里是十六進(jìn)制 key 的 url key = requests.get(keyUrl).content # 請(qǐng)求 key cryptor = AES.new(key, AES.MODE_CBC) # 創(chuàng)建一個(gè)解密器 decryption = cryptor.decrypt(content) with open("decryption.ts", 'ab') as FO: FO.write(decryption)
這里的大致思路就是把加密的二進(jìn)制文件讀取下來,然后解密,再寫入文件,這時(shí)再打開就可以看到正常的視頻了。
網(wǎng)絡(luò)上的視頻流數(shù)據(jù),都是分片發(fā)送的,也就是一個(gè)個(gè)的片段。每個(gè)片段只有幾百 kb 的大小,所以視頻內(nèi)容只有幾秒的時(shí)間。想要獲得完整視頻,可以使用爬蟲,將所有的視頻片段爬取下來,然后逐個(gè)解密,將解密后的內(nèi)容以二進(jìn)制流的形式追加到一個(gè)視頻文件上,這樣最后得到的視頻就是完整的視頻。
原文鏈接:https://blog.csdn.net/m0_46190471/article/details/129115278
- 上一篇:沒有了
- 下一篇:沒有了
相關(guān)推薦
- 2022-11-24 詳解python中@classmethod和@staticmethod方法_python
- 2022-05-19 ASP.NET?Core框架探索之Authentication的權(quán)限認(rèn)證過程解析_實(shí)用技巧
- 2023-12-23 css設(shè)置文字超出顯示...
- 2022-06-09 Nginx動(dòng)靜分離配置實(shí)現(xiàn)與說明_nginx
- 2022-11-22 docker+Nginx部署前端項(xiàng)目的詳細(xì)過程記錄_docker
- 2023-10-16 Nginx啟動(dòng),重啟以及基本命令
- 2022-12-05 Android實(shí)現(xiàn)滑動(dòng)折疊Header全流程詳解_Android
- 2023-01-12 解決Python報(bào)錯(cuò):SyntaxError:?invalid?character?‘,‘?(U+F
- 欄目分類
-
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支