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:gbkimport sysimport randomimport hashlibrandomascii = "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 = OMefdNXqpWVrACyzBUSsTutRoQnPmlkjHGIbKcJaLiEDhFgZxwvYrandomascii = vwHxIGQnRmPoJfeKdLrEDpFqlMOkNjsZYtuhWVigXBbCacASyUzTrandomascii = TedSUfPyRzQtsWXVuLhJgKiEmDoFncaBCbAYZxvwkjIGHlNMrpOqrandomascii = rqBpCAgSTUihdZfeYNjlkOMFEstuDxvwKJLGcIHbanmWXVozyQPRrandomascii = hJgKLiMjlkONrPqRQpWVtuXsAyzCBFcaEDbmYnZoeSUdTfwIvxGHrandomascii = GsuItHUonTmScLaJbKVqprXWPhgiRQwNOxvMCdfBeAYjlZkyFzDErandomascii = yVzXWRQxwPvLmJnoKHGedfICAkjlBYrqZpabEcDFSiThgUNstuMOrandomascii = fdEFeDYgZhiUTxwvSbONcMaBsutCAQpqrRPzIyGHmnJoLKjWVXklrandomascii = noPmRQEvFwDxrVqXpWzNOMyGIbHacZjYklutUSTsJdLKfeCghiABrandomascii = NOyMztACusBrGHIpqnmXVoWghEDiFUSbaTcfedQPRKlkJjLZYwvx
使用截图,选一个看着顺眼的密码吧,要记下位置哦,以防下回找不着, 第二个参数可以给长度哦,默认9位 [img]http://dl.iteye.com/upload/attachment/612165/4a7f9d31-9915-390e-a9a5-5049e89ad29c.gif[/img] 有点不太爽的地方就是有些BT的家伙做的东东不让粘贴,比如qq飞信当当什么的,那密码就不好输入了,那只能用个简单密码了。
zFyEDXcbaVWCqpBrAiNghMOHGImnoRstuQPkTljSUZefdYvKLJwx cNbOMaPQRnomIhgGHisLKJutyFzDETqrSUpkjlWVXYwxZvdefACB lXkjVWAdBCfeFomEnDPvwxRQrSpqTUyONMzHuGsItJhLgiKZaYcb DkFljEtTuUSsvxwIGHoZmnYyPRQzLbKacJqMNOrpVhgiWXCBAefd YjklZRQhiPgBrqpACLKeJdfSTyzUsItHGuFDEcabXxVWwvmNOnMo JLKjlkyzHGINOhMgidSUfTesYuZtabABcCXWVqrpQRmonPvwDEFx JKwLvxkljQRPMqrpNOCnAmBoGtuIsHbaXcVWdTUeSfYhigZyDEFz vwMONxZbYcazCAyBklLJjKhTigSUprEqDFnVmoWXGeHIdfQPsRtu iKLJghCABmonMNOyzbIcGaHlWXkjVwxvPRQqprYZFEutDsTeUSdf wGHvxITSeUdfPabQcRzKLyJCBAhgiOprMNqjklWVXustYZDEmFno
