密码生成小工具

CSDN数据库.zip
天涯数据库.zip
金山毒霸.zip
多玩库.rar
珍爱网数据库.zip
百合网数据库.zip
非诚勿扰.rar
开心网.rar
世纪家园数据库.zip
走秀网.rar
信息学院数据库.rar
西游傲剑.rar
图虫网.zip
美空数据库.zip
克洛斯.rar
佳品网.zip
爱慕.zip
me.zip
mail.rar
gg.zip
eNet数据库.rar
cnzz数据库.rar
cnbeta数据库.tgz
YY数据库.zip
UUU9.rar
IS数据库.kz

随着某些网站使用明文用户密码信息的泄露,全民改密码时代到来了。
如何改出一个有个性的密码,是个问题。
下面咱们用python中的hash算法,算出些个密码来用。
测试环境:Win7 64位+Python 3.2 64位

AnPass.py
# coding:gbk

import sys
import random
import hashlib

randomascii = "YvwxZomJKnLzyQRPWVtsXugHiIGhkUTjlSErpqFDfdCAeBcMbaNO"

def randansi():
    arrsorted = [i for i in "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"]
    result = []
    RESULT = []
    for i in range(26):
      if (i+1)%3==0:
        result.append(arrsorted[i-2:i+1])
        RESULT.append(arrsorted[i-2+26:i+1+26])
    result.append(arrsorted[24:26])
    RESULT.append(arrsorted[24+26:26+26])
    random.shuffle(result)
    random.shuffle(RESULT)
    arrrandom = []
    for i in range(26//3 + 1):
        tmprandom = []
        tmprandom.extend(result[i])
        tmprandom.extend(RESULT[i])
        random.shuffle(tmprandom)
        arrrandom.extend(tmprandom)
    return "".join(arrrandom)

def anhash(rawPass, lenPass, hashName):
    result = []
    for i, v in enumerate(rawPass[:lenPass]):
        if v.isdigit():
            result.append(v)
        else:
            d1 = i % 8 + 1
            d2 = int(v, 16) - 9
            result.append(randomascii[d1*d2])
    print(rawPass[:lenPass], hashName)
    print("".join(result), hashName + "A")

def anpass(rawPass, lenPass):
    print(rawPass, lenPass)
    rawPassBT = bytes(rawPass, "gbk")
    whirlPass = hashlib.new("whirlpool", data=rawPassBT).hexdigest()
    rawPassBT = bytes(whirlPass, "gbk")

    sha1Pass = hashlib.new("SHA1", data=rawPassBT).hexdigest()
    anhash(sha1Pass, lenPass, "SHA1")

    md5Pass = hashlib.new("MD5", data=rawPassBT).hexdigest()
    anhash(md5Pass, lenPass, "MD5")

    md4Pass = hashlib.new("MD4", data=rawPassBT).hexdigest()
    anhash(md4Pass, lenPass, "MD4")

if __name__ == "__main__":
    print("Generate a password by hashlib.")
    print(sys.argv)
    if len(sys.argv) < 2:
        print("python AnPass.py yourpass")
        print("python AnPass.py yourpass len")
    else:
        rawPass = sys.argv[1]
        if len(sys.argv) > 2:
            lenPass = int(sys.argv[2])
            anpass(rawPass, lenPass)
        else:
            anpass(rawPass, 9)


生成思路是这样的,我先给个容易记忆的明文作为参数,比如用“oaklet.iteye.com”,
不就是用户加网址嘛,
然后对这个串进行第一次hash计算,
再对第一次hash计算的值进行第二次hash计算,
再对第二次hash计算的值进行截取替换操作,
这样基本就可以了。
两次hash的算法都可以自己选哦,hashlib提供的算法如下:

SHA1
SHA224
SHA
SHA384
ecdsa-with-SHA1
SHA256
SHA512
dsaWithSHA
DSA-SHA
dsaEncryption
DSA
MD5
MD4
RIPEMD160
whirlpool

Hash完成之后进行的字符替换也要自己定义字典哦(定义一次就不要改了,否则下回算出来密码就变了,找不回来了)
示例:
randomascii = OMefdNXqpWVrACyzBUSsTutRoQnPmlkjHGIbKcJaLiEDhFgZxwvY
randomascii = vwHxIGQnRmPoJfeKdLrEDpFqlMOkNjsZYtuhWVigXBbCacASyUzT
randomascii = TedSUfPyRzQtsWXVuLhJgKiEmDoFncaBCbAYZxvwkjIGHlNMrpOq
randomascii = rqBpCAgSTUihdZfeYNjlkOMFEstuDxvwKJLGcIHbanmWXVozyQPR
randomascii = hJgKLiMjlkONrPqRQpWVtuXsAyzCBFcaEDbmYnZoeSUdTfwIvxGH
randomascii = GsuItHUonTmScLaJbKVqprXWPhgiRQwNOxvMCdfBeAYjlZkyFzDE
randomascii = yVzXWRQxwPvLmJnoKHGedfICAkjlBYrqZpabEcDFSiThgUNstuMO
randomascii = fdEFeDYgZhiUTxwvSbONcMaBsutCAQpqrRPzIyGHmnJoLKjWVXkl
randomascii = noPmRQEvFwDxrVqXpWzNOMyGIbHacZjYklutUSTsJdLKfeCghiAB
randomascii = NOyMztACusBrGHIpqnmXVoWghEDiFUSbaTcfedQPRKlkJjLZYwvx


使用截图,选一个看着顺眼的密码吧,要记下位置哦,以防下回找不着,
第二个参数可以给长度哦,默认9位
密码生成小工具

有点不太爽的地方就是有些BT的家伙做的东东不让粘贴,比如qq飞信当当什么的,那密码就不好输入了,那只能用个简单密码了。


zFyEDXcbaVWCqpBrAiNghMOHGImnoRstuQPkTljSUZefdYvKLJwx
cNbOMaPQRnomIhgGHisLKJutyFzDETqrSUpkjlWVXYwxZvdefACB
lXkjVWAdBCfeFomEnDPvwxRQrSpqTUyONMzHuGsItJhLgiKZaYcb
DkFljEtTuUSsvxwIGHoZmnYyPRQzLbKacJqMNOrpVhgiWXCBAefd
YjklZRQhiPgBrqpACLKeJdfSTyzUsItHGuFDEcabXxVWwvmNOnMo
JLKjlkyzHGINOhMgidSUfTesYuZtabABcCXWVqrpQRmonPvwDEFx
JKwLvxkljQRPMqrpNOCnAmBoGtuIsHbaXcVWdTUeSfYhigZyDEFz
vwMONxZbYcazCAyBklLJjKhTigSUprEqDFnVmoWXGeHIdfQPsRtu
iKLJghCABmonMNOyzbIcGaHlWXkjVwxvPRQqprYZFEutDsTeUSdf
wGHvxITSeUdfPabQcRzKLyJCBAhgiOprMNqjklWVXustYZDEmFno

你可能感兴趣的:(工具)