自制密码生成器算法!只记住同一个密码就可以在不同平台生成不同密码

大家有没有想过,如果你自己想了一个密码,比如csdnnb11,然后想把它作为百度网盘、csdn、github、手机密码…等,这样子只用记住一个了?

这种想法存在两个风险,第一就是不太容易借号,比如你要把百度网盘的号借给朋友,那么朋友完全可以用你给她的密码盗登别的;第二就是每个网站密码要求不同。比如银行卡密码就要求纯数字的。

我自己就想到了一个算法,思路很简单,就是自己先想一个密码,比如还是csdnnb11,然后把它sha-256哈希成纯数字,设为 x x x,然后以 x x x为种子初始化随机数生成器,然后自己编写不同平台的密码生成策略。

示例代码:

import random
import hashlib
class gen:
    def __init__(self,password:str) -> None:
        sha256=hashlib.sha256(password.encode()).hexdigest()
        seed = int(sha256, 16)
        self.seed=seed
        random.seed(seed)
    def 手机密码(self):# 6位数数字密码
        ret=''
        for _ in range(6):
            ret=ret+str(random.randint(0,6))
        return ret
    def Steam密码(self):
        ret=''
        for _ in range(12):
            ret=ret+str(random.choice(self.all))
        return ret
pwd=input('请输入您要生成的密码:')
Gen=gen(password=pwd)
print(Gen.手机密码())

比如,我只要记住我自己的密码是“csdnnb11”,那么我运行上面的代码,调用手机密码(),就可以得到“632416”,调用Steam密码(),就可以得到"TohybTifmc30"
在这里插入图片描述
这样子,我就可以在不同平台使用不同密码,但只用记住一个了!而且可以自定义密码长度什么的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值