python绝技在python3中的代码第一章

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()








 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值