python實(shí)現(xiàn)對(duì)AES加密的視頻數(shù)據(jù)流解密的方法
密碼學(xué)中的高級(jí)加密標(biāo)準(zhǔn)(Advanced Encryption Standard,AES),又稱(chēng)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)槲募?lèi)型不受支持、文件擴(kuò)展名不正確或文件已損壞。”

這個(gè)加密的視頻片段為 “91j0PUhx.ts”
解密需要導(dǎo)入 Crypto 模塊,需要導(dǎo)入 from Crypto.Cipher import AES ,如果導(dǎo)入的語(yǔ)句報(bào)錯(cuò),這里需要使用 pip 安裝這個(gè)模塊,教程我之前的文章中寫(xiě)到過(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),然后解密,再寫(xiě)入文件,這時(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)文章
Python實(shí)現(xiàn)隨機(jī)游走的詳細(xì)解釋
這篇文章主要介紹了Python實(shí)現(xiàn)隨機(jī)游走的詳細(xì)解釋,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
Python實(shí)現(xiàn)亂序文件重新命名編號(hào)
這篇文章主要為大家詳細(xì)介紹一下Python的一個(gè)神操作,那就是實(shí)現(xiàn)亂序文件重新命名編號(hào)功能,文中的示例代碼講解詳細(xì),感興趣的可以嘗試一下2022-08-08
python實(shí)現(xiàn)識(shí)別手寫(xiě)數(shù)字 python圖像識(shí)別算法
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)識(shí)別手寫(xiě)數(shù)字,python圖像識(shí)別算法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01
一篇文章徹底搞懂Python中可迭代(Iterable)、迭代器(Iterator)與生成器(Generator)的概念
這篇文章主要給大家介紹了如何通過(guò)一篇文章徹底搞懂Python中可迭代(Iterable)、迭代器(Iterator)與生成器(Generator)的概念,對(duì)大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05
pip版本低導(dǎo)致Python離線包安裝失敗的問(wèn)題解決
在使用Python進(jìn)行開(kāi)發(fā)時(shí),安裝各種第三方庫(kù)是必不可少的,不過(guò),有時(shí)候我們會(huì)遇到一些麻煩,尤其是當(dāng)pip的版本較低時(shí),下面我們來(lái)看看如何解決這一問(wèn)題吧2025-03-03

