暴力的にzip暗号化圧縮パッケージを解読する
3479 ワード
最近ちょうど圧縮パケットが解読されるので,暗号化された圧縮パケットをどのように解読すべきかを少し検討した(zip,rarは道理上同じである).従来の方法では高度な解読方式は考えられなかったため,暴力的に圧縮パッケージを解読するしかなかった.暴力解决圧縮パッケージの原理は簡単です.まず暗号辞書を作ります.この辞書は暴力解の核心です.まず、このような暗号辞書を作る方法について話します.暗号化圧縮パッケージについて、私たちはまず真実の暗号がどのタイプなのかを推測する必要があります.例えば、純数字タイプ(0-9)、純アルファベットタイプ(a-z、A-Z)、特殊記号(*&......%)、様々なタイプが混在する特殊なタイプ.次は直接乾物(純数字を例に):
上記のコードでは、パスワードが純粋な数字で構成されており、パスワードが4桁しかないと仮定していることがわかります.paswd_candidate_dictこれは0-9の中から4つの数字が並んでいる全配列で、明らかに並んでいる数字はそれぞれ異なりますが、パスワードに畳字(1111)がある場合は、上記のリストを4回コピーしてリストに入れる必要があります.つまり、成功するためには実際のパスワードが何桁の数字なのか、0-9が何回必要なのかを見る必要があります.OK、ここまでで必要な暗号辞書を作成しました.
次に、i.txtから各行の候補パスワードを絶えず読み出し、最終的にパスワードが解読されるまで圧縮パッケージに送って試します.具体的な過程については、ある学生がパスワードを書いて本例を解読したのは科学研究を学ぶためだけで、決して不法な道に使ってはいけない.
import itertools
import string
import time
paswd_candidate_dict=list(itertools.permutations(['0','1','2','3','4','5','6','7','8','9',],4))
paswd_dict=[]
start=time.clock()
for k in paswd_candidate_dict:
list_i=list(k)
paswd_candidate=''.join(list_i)
file=open('C:i.txt','r+')
file.read()
file.write('
'+paswd_candidate)
file.close()
end=time.clock()
print("time :",round(((end-start)/60),2),"min")
上記のコードでは、パスワードが純粋な数字で構成されており、パスワードが4桁しかないと仮定していることがわかります.paswd_candidate_dictこれは0-9の中から4つの数字が並んでいる全配列で、明らかに並んでいる数字はそれぞれ異なりますが、パスワードに畳字(1111)がある場合は、上記のリストを4回コピーしてリストに入れる必要があります.つまり、成功するためには実際のパスワードが何桁の数字なのか、0-9が何回必要なのかを見る必要があります.OK、ここまでで必要な暗号辞書を作成しました.
次に、i.txtから各行の候補パスワードを絶えず読み出し、最終的にパスワードが解読されるまで圧縮パッケージに送って試します.具体的な過程については、ある学生がパスワードを書いて本例を解読したのは科学研究を学ぶためだけで、決して不法な道に使ってはいけない.