python绝技在python3中的代码第一章
教材中的crypt库在python3.7的windows平台中对应的库为‘fcrypt’
一、fcrypt的简单应用案例
import fcrypt
word = ["kali","root","123456"]
salt = ["HX","HH"]
user = ["root","test"]
i=1
with open("./file/passWord.txt","w+") as f:
for u in user:
for w in word:
for s in salt:
password = fcrypt.crypt(w,s)
f.writelines(u+str(i) + ":" +password+"\n")
i=i+1
输出为:
root1:HXngjDTOm7nNg
root2:HHlZqwW1n0jNM
root3:HXm67DcD6wsYw
root4:HHMs0QnptvQ.2
root5:HXEtlo/Qz.0mA
root6:HH9dq1sQ.9TPQ
test7:HXngjDTOm7nNg
test8:HHlZqwW1n0jNM
test9:HXm67DcD6wsYw
test10:HHMs0QnptvQ.2
test11:HXEtlo/Qz.0mA
test12:HH9dq1sQ.9TP
二、 教材21页代码
import fcrypt
def testPass(cryptWord):
salt = cryptWord[0:2]
dictFile = open('./file/dictionary.txt','r')
for word in dictFile.readlines():
word = word.strip('\n')
passWord = fcrypt.crypt(word ,salt)
if (passWord == cryptWord):
print("[+]PassWord Fond : " + word+"\n")
dictFile.close()
return
print("[-]password not found:\n")
dictFile.close()
return
def main():
passFile = open('./file/passWord.txt','r')
for line in passFile.readlines():
if ':' in line:
line = line.strip('\n')
wordList = line.split(':')
user = wordList[0].strip(' ')
passWord = wordList[1].strip(' ')
print("[*] Cracking password for:"+user+"\n")
testPass(passWord)
passFile.close()
return
if __name__ == '__main__':
main()
三、zipfile 在python37中使用的是zipfile37库
教材26页代码
#!C:\Python37 # -*- coding:utf-8 -*- import zipfile37 from threading import Thread import optparse def zipPassword(zipFile,passwd): if isinstance(passwd,str): passwd = passwd.encode("utf-8") try: zipFile.extractall(pwd=passwd) print("password="+ str(passwd)) return 1 except Exception as e: #print(e) pass return def main(): parse = optparse.OptionParser("usage -f <zipfile> -d <dictionary file>") parse.add_option('-f' , dest ='zname' ,type = 'string' , help = 'specify zip file') parse.add_option('-d' , dest ='dname' ,type = 'string', help = 'specify dictionary file') (options , arges) = parse.parse_args() if (options.zname == None) |(options.dname == None): print(parse.usage) exit(0) else: zname = options.zname dname = options.dname pwdFile = open(dname,'r') zpFile = zipfile37.ZipFile(zname) for line in pwdFile.readlines(): pwdWord = line.strip("\n ") t=Thread(target=zipPassword,args=(zpFile,pwdWord)) #t = Thread(target=zipPassword(zpFile, pwdWord)) t.start() if __name__ == '__main__': main()