跳转到主内容
极星编程网:以代码为星,赴技术山海!

密码生成小工具

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

相关文章