python實(shí)現(xiàn)對(duì)AES加密的視頻數(shù)據(jù)流解密的方法
密碼學(xué)中的高級(jí)加密標(biāo)準(zhǔn)(Advanced Encryption Standard,AES),又稱Rijndael加密法。
在做網(wǎng)絡(luò)爬蟲(chóng)的時(shí)候,會(huì)遇到經(jīng)過(guò)AES加密的數(shù)據(jù),可以使用python來(lái)進(jìn)行解密。
在做爬蟲(chóng)的時(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)。打開(kāi)后會(huì)出現(xiàn)下面的結(jié)果:
“此文件無(wú)法播放。這可能是因?yàn)槲募愋筒皇苤С?、文件擴(kuò)展名不正確或文件已損壞。”
這個(gè)加密的視頻片段為 “91j0PUhx.ts”
解密需要導(dǎo)入 Crypto 模塊,需要導(dǎo)入 from Crypto.Cipher import AES
,如果導(dǎo)入的語(yǔ)句報(bào)錯(cuò),這里需要使用 pip 安裝這個(gè)模塊,教程我之前的文章中寫到過(guò),或者到網(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)制文件讀取下來(lái),然后解密,再寫入文件,這時(shí)再打開(kāi)就可以看到正常的視頻了。
網(wǎng)絡(luò)上的視頻流數(shù)據(jù),都是分片發(fā)送的,也就是一個(gè)個(gè)的片段。每個(gè)片段只有幾百 kb 的大小,所以視頻內(nèi)容只有幾秒的時(shí)間。想要獲得完整視頻,可以使用爬蟲(chóng),將所有的視頻片段爬取下來(lái),然后逐個(gè)解密,將解密后的內(nèi)容以二進(jìn)制流的形式追加到一個(gè)視頻文件上,這樣最后得到的視頻就是完整的視頻。
到此這篇關(guān)于用python實(shí)現(xiàn)對(duì)AES加密的視頻數(shù)據(jù)流解密的文章就介紹到這了,更多相關(guān)python實(shí)現(xiàn)對(duì)AES加密的視頻數(shù)據(jù)流解密內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
pytorch加載的cifar10數(shù)據(jù)集過(guò)程詳解
這篇文章主要介紹了pytorch加載的cifar10數(shù)據(jù)集,到底有沒(méi)有經(jīng)過(guò)歸一化,本文對(duì)這一問(wèn)題給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2023-11-11Python 存取npy格式數(shù)據(jù)實(shí)例
這篇文章主要介紹了Python 存取npy格式數(shù)據(jù)實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-07-07python批量處理多DNS多域名的nslookup解析實(shí)現(xiàn)
這篇文章主要介紹了python批量處理多DNS多域名的nslookup解析實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06Python urllib庫(kù)如何添加headers過(guò)程解析
這篇文章主要介紹了Python urllib庫(kù)如何添加headers過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10python中json操作之json.loads、json.load、json.jumps及json.jump用法
最近在python里面用json讀取json文件,可是老是不成功,特此記錄一下,下面這篇文章主要給大家介紹了關(guān)于python中json操作之json.loads、json.load、json.jumps及json.jump用法的相關(guān)資料,需要的朋友可以參考下2022-08-08