python實現(xiàn)對AES加密的視頻數(shù)據(jù)流解密的方法
密碼學(xué)中的高級加密標(biāo)準(zhǔn)(Advanced Encryption Standard,AES),又稱Rijndael加密法。
在做網(wǎng)絡(luò)爬蟲的時候,會遇到經(jīng)過AES加密的數(shù)據(jù),可以使用python來進行解密。
在做爬蟲的時候,通??梢哉业揭粋€key,這個key是一個十六進制的一串字符,這傳字符是解密的關(guān)鍵。所以對于想要解密的內(nèi)容,首先要找到這個key,一般在Chrome瀏覽器按F12鍵,在network里面可以找到這個key。如下圖:
本例中,以一個視頻片段為例,視頻片段我已經(jīng)事先保存到電腦中。此時處于加密狀態(tài)。打開后會出現(xiàn)下面的結(jié)果:
“此文件無法播放。這可能是因為文件類型不受支持、文件擴展名不正確或文件已損壞。”
這個加密的視頻片段為 “91j0PUhx.ts”
解密需要導(dǎo)入 Crypto 模塊,需要導(dǎo)入 from Crypto.Cipher import AES
,如果導(dǎo)入的語句報錯,這里需要使用 pip 安裝這個模塊,教程我之前的文章中寫到過,或者到網(wǎng)上找教程,都會有解決方法,這里不再贅述。
下面直接上代碼:
from Crypto.Cipher import AES import requests with open("91j0PUhx.ts","rb") as FO: # 以二進制的形式讀取視頻片段 content = FO.read() # 保存到content中 keyUrl = "" # 這里字符串中填入找到的 key 的 url # 這里是十六進制 key 的 url key = requests.get(keyUrl).content # 請求 key cryptor = AES.new(key, AES.MODE_CBC) # 創(chuàng)建一個解密器 decryption = cryptor.decrypt(content) with open("decryption.ts", 'ab') as FO: FO.write(decryption)
這里的大致思路就是把加密的二進制文件讀取下來,然后解密,再寫入文件,這時再打開就可以看到正常的視頻了。
網(wǎng)絡(luò)上的視頻流數(shù)據(jù),都是分片發(fā)送的,也就是一個個的片段。每個片段只有幾百 kb 的大小,所以視頻內(nèi)容只有幾秒的時間。想要獲得完整視頻,可以使用爬蟲,將所有的視頻片段爬取下來,然后逐個解密,將解密后的內(nèi)容以二進制流的形式追加到一個視頻文件上,這樣最后得到的視頻就是完整的視頻。
到此這篇關(guān)于用python實現(xiàn)對AES加密的視頻數(shù)據(jù)流解密的文章就介紹到這了,更多相關(guān)python實現(xiàn)對AES加密的視頻數(shù)據(jù)流解密內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
pytorch加載的cifar10數(shù)據(jù)集過程詳解
這篇文章主要介紹了pytorch加載的cifar10數(shù)據(jù)集,到底有沒有經(jīng)過歸一化,本文對這一問題給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2023-11-11python批量處理多DNS多域名的nslookup解析實現(xiàn)
這篇文章主要介紹了python批量處理多DNS多域名的nslookup解析實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06python中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