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