`
oaklet
  • 浏览: 107653 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

密码生成小工具

 
阅读更多
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
  • 大小: 8.2 KB
分享到:
评论
2 楼 oaklet 2016-04-18  
最新改进型
# 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, srcPass, hashName):
    print(rawPass, len(rawPass), 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("".join(result), "%s%s%sA"%(srcPass, lenPass, hashName))

def andigithash(rawPass, lenPass, srcPass, hashName):
    result = []
    for i, v in enumerate(rawPass[-lenPass:]):
        if v.isdigit():
            result.append(v)
        else:
            d1 = (i + randomascii.find(v)) % 9
            result.append(str(d1))
    print("".join(result), "%s%s%sAD"%(srcPass, lenPass, hashName))

def anmixedhash(rawPass, lenPass, srcPass, hashName):
    result = []
    idxa = []
    idxd = []
    for i, v in enumerate(rawPass[-lenPass:]):
        if v.isdigit():
            idxd.append(i)
        else:
            idxa.append(i)
    idxalen = len(idxa)
    idxdlen = len(idxd)
    if idxalen-idxdlen>=2:
        count = (idxalen-idxdlen)//2
        changeidx = []
        while count>0:
            count=count-1
            changeidx.append(idxa.pop())
        changeidx.sort()
        changeidx.reverse()
        curr = changeidx.pop()
        for i, v in enumerate(rawPass[-lenPass:]):
            if v.isdigit():
                result.append(v)
            else:
                if curr==i:
                    d1 = (i + randomascii.find(v)) % 9
                    result.append(str(d1))
                    if changeidx:
                        curr = changeidx.pop()
                else:
                    d1 = i % 8 + 1
                    d2 = (int(v, 16)*d1)%52
                    result.append(randomascii[d2])
    elif idxdlen-idxalen>=2:
        idxd.reverse()
        count = (idxdlen-idxalen)//2
        changeidx = []
        while count>0:
            count=count-1
            changeidx.append(idxd.pop())
        changeidx.sort()
        changeidx.reverse()
        curr = changeidx.pop()
        for i, v in enumerate(rawPass[-lenPass:]):
            if v.isdigit():
                if curr==i:
                    d1 = i % 8 + 1
                    d2 = (int(v, 16)*d1)%52
                    result.append(randomascii[d2])
                    if changeidx:
                        curr = changeidx.pop()
                else:
                    result.append(v)
            else:
                d1 = i % 8 + 1
                d2 = (int(v, 16)*d1)%52
                result.append(randomascii[d2])
    else:
        for i, v in enumerate(rawPass[-lenPass:]):
            if v.isdigit():
                result.append(v)
            else:
                d1 = i % 8 + 1
                d2 = (int(v, 16)*d1)%52
                result.append(randomascii[d2])
    print("".join(result), "%s%s%sAM"%(srcPass, lenPass, hashName))

def anpass(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, rawPass, "SHA1")
    anmixedhash(sha1Pass, lenPass, rawPass, "SHA1")
    andigithash(sha1Pass, lenPass,  rawPass, "SHA1")

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

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

def chzhshch(stryear, strmonth):
    a = int(stryear)-0
    b = int(stryear)+1
    c = int(stryear)
    d = int(strmonth)
    for i in range(a, b):
        year = i
        count_year = year-1992
        yquarter = 1429 + (360/4)*(count_year)
        yhalf = 1429 + (360/2)*(count_year)
        y3quarter = 1429 + (360*3/4)*(count_year)
        for j in range(12):
            month = j+1
            count_month = count_year*12 + (month-5)
            mquarter = 1429 + (360/4/12)*(count_month)
            mhalf = 1429 + (360/2/12)*(count_month)
            m3quarter = 1429 + (360*3/4/12)*(count_month)
            if year==c and month==d:
                print(year, month, "1/4", mquarter, "1/2", mhalf, "3/4", m3quarter, count_month, "<<< month")
            elif yquarter==mquarter:
                print(year, month, "1/4", mquarter, "1/2", mhalf, "3/4", m3quarter, count_month, "< year")
            else:
                print(year, month, "1/4", mquarter, "1/2", mhalf, "3/4", m3quarter, count_month)
        print()

if __name__ == "__main__":
    import time
    print(time.strftime("%Y-%m-%d %H:%M:%S"))
    syear = time.strftime("%Y")
    smonth = time.strftime("%m")
    chzhshch(syear, smonth)
    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)

# randomascii = "vxQwRPyCzABWqVprXihZYgbUaSTcKsLJutjlkNMOoHGmnIdfeEDF"  
# randomascii = "YhigZGsItHuONlkjMnmAoCBvUxTwSaJbcLKVWqprXDfdFeEyRPQz"  
# randomascii = "VghXiWJtuLKsGHcIbaljFEkDOMvxNwCfBAedrqZYpzRyPQSTnomU"  
# randomascii = "XVdWefiRgPQhLKJzycGabIHDExFwvqOpNrMsutZYjSlkTUonBAmC"  
# randomascii = "feMdNOgZhiYTUSyzlQRPjkFnEmoDcBbaCApVXrqWxGwHIvLKtsuJ"  
# randomascii = "WXefdVyONMzGwvIHxPigQRhKrqpJLAtBuCsoZnmYkjlFDESUTbac"  
# randomascii = "GvHIwxpqrUSTQtsRuPCAByzfKLedJigZhYXVWmonElFjDkMNabOc"  
# randomascii = "jkLlJKdeOMNfUbTSacPsQtRuxXvwWVrBCpAqnoDmFEihGHgIyZYz"  
# randomascii = "oZnYmeBdCAfUgTihSKyLzJuOsNtMpHrqIGQRwxvPXWVabclEkFjD"  
# randomascii = "FdEDfeYZzynKLmJogWihXVHGIprqsBCutASUbcTawNvOxMjRkPQl"  
# randomascii = "USTjklqWrVpXFcDabEeBCdfAtYsZuvLxJwKNOzyMIghiGHRPmonQ"  
# randomascii = "mJLonKNOvwMxBqArpCWVuXstdYZfeRghPQiSUjkTlEFDyzabHIGc"  
# randomascii = "ihQPgRLKvxJwuXsVtWpqrMNOUySzTCAdBefkFlDjEGHabcInmoYZ"  
# randomascii = "pEFDqrVnmXWoghQPiRIeHdGfOMaNcbtuJsKLZvxwYClkAjByUTzS"  
# randomascii = "dZfYeOvwxNMJlKLkjDEFcbahRgiPQqBrCpAnVomXWzyIHGtsuSTU"  
# randomascii = "xvZwYefJKdLNgMOihlPkRjQnoHmIGtWXusVUyTzScABbCaFrqEDp"  
# randomascii = "nTUSmoYdeZfyQzRPabVcWXprqCBAjlDkEFgNMOihsuGHtIJKLwxv"  
# randomascii = "giChABGzIHymYoZndEDfeFRQtsPuxwvTSUNjkOMlJrpLqKVacWbX"  
# randomascii = "TiSghUDzFEyOsNutMqYZrpIfdeHGAljBCkbJcLKaPnRQomwvxWXV"  
# randomascii = "uHtGIsiTShUgMoONmnxQwRPvlVkjXWCyBzAbaJKLcfdEeDFpqYrZ"  
1 楼 oaklet 2012-07-16  
# 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):
    print(rawPass, len(rawPass), 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:], "%s%s"%(lenPass, hashName))
    print("".join(result), "%s%sA"%(lenPass, hashName))

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)

# randomascii = "vxQwRPyCzABWqVprXihZYgbUaSTcKsLJutjlkNMOoHGmnIdfeEDF"
# randomascii = "YhigZGsItHuONlkjMnmAoCBvUxTwSaJbcLKVWqprXDfdFeEyRPQz"
# randomascii = "VghXiWJtuLKsGHcIbaljFEkDOMvxNwCfBAedrqZYpzRyPQSTnomU"
# randomascii = "XVdWefiRgPQhLKJzycGabIHDExFwvqOpNrMsutZYjSlkTUonBAmC"
# randomascii = "feMdNOgZhiYTUSyzlQRPjkFnEmoDcBbaCApVXrqWxGwHIvLKtsuJ"
# randomascii = "WXefdVyONMzGwvIHxPigQRhKrqpJLAtBuCsoZnmYkjlFDESUTbac"
# randomascii = "GvHIwxpqrUSTQtsRuPCAByzfKLedJigZhYXVWmonElFjDkMNabOc"
# randomascii = "jkLlJKdeOMNfUbTSacPsQtRuxXvwWVrBCpAqnoDmFEihGHgIyZYz"
# randomascii = "oZnYmeBdCAfUgTihSKyLzJuOsNtMpHrqIGQRwxvPXWVabclEkFjD"
# randomascii = "FdEDfeYZzynKLmJogWihXVHGIprqsBCutASUbcTawNvOxMjRkPQl"
# randomascii = "USTjklqWrVpXFcDabEeBCdfAtYsZuvLxJwKNOzyMIghiGHRPmonQ"
# randomascii = "mJLonKNOvwMxBqArpCWVuXstdYZfeRghPQiSUjkTlEFDyzabHIGc"
# randomascii = "ihQPgRLKvxJwuXsVtWpqrMNOUySzTCAdBefkFlDjEGHabcInmoYZ"
# randomascii = "pEFDqrVnmXWoghQPiRIeHdGfOMaNcbtuJsKLZvxwYClkAjByUTzS"
# randomascii = "dZfYeOvwxNMJlKLkjDEFcbahRgiPQqBrCpAnVomXWzyIHGtsuSTU"
# randomascii = "xvZwYefJKdLNgMOihlPkRjQnoHmIGtWXusVUyTzScABbCaFrqEDp"
# randomascii = "nTUSmoYdeZfyQzRPabVcWXprqCBAjlDkEFgNMOihsuGHtIJKLwxv"
# randomascii = "giChABGzIHymYoZndEDfeFRQtsPuxwvTSUNjkOMlJrpLqKVacWbX"
# randomascii = "TiSghUDzFEyOsNutMqYZrpIfdeHGAljBCkbJcLKaPnRQomwvxWXV"
# randomascii = "uHtGIsiTShUgMoONmnxQwRPvlVkjXWCyBzAbaJKLcfdEeDFpqYrZ"


相关推荐

    阿里云Password生成小工具.zip

    阿里云Password生成小工具 阿里云Password生成小工具 阿里云Password生成小工具

    java密码生成器工具

    因此,人们借助密码生成器为其帐户创建强大而复杂的密码。要自己生成此类功能,您可以利用 java 提供的功能。每当用户在新网站上开发帐户时,您都可以使用该程序开发密码。为了使密码的安全性更高,您可以强制执行...

    密码生成工具.zip

    生成随机密码可指定密码重复字符数,长度,条数,生成随机位置随机重复的字符,生成后会在桌面生成密码.txt文档

    随机16位密码生成工具

    基于目前严峻的网络安全形势,大家在多个网站使用同一密码完全不安全的情况下,又不好设置密码,可用该工具快速生成16位长度的密码,每次生成5个供选择。

    C#密码随机生成小工具

    随机生成密码,初学者可参考,工具可使用。随机生成密码工具。

    密码生成器 工具.7z

    MAX 密码生成器 工具.7z

    MFC密码加密生成小工具

    密码加密生成小工具(不含源码,工具免费分享),支持同一个密码转换为多种加密ASCII字符组合。 参考链接:https://blog.csdn.net/long00000kid/article/details/121027712

    随机密码生成器

    随风随机密码生成器是一个简单的随机密码生成工具。 随风随机密码生成器使用说明: 1.密码可以是“数字,字母,符号”任意组合 2.可生成5到100位密码!满足大多应用!可以选加Id! 3.可一次生成999万个密码!生成...

    生成密码小工具

    生成随机密码,简单方便好用。可以生成最长25位字符的密码,包含a-z,A-Z,0-9,以及一些特殊字符。

    Java密码生成器工具

    内容概要: 这段代码是一个Java小工具,名为 "PasswordGenerator",用于生成强密码,包含大写字母、小写字母、数字和特殊字符。...密码生成过程使用了安全的随机数生成器以提高密码的强度。希望这个工具对你有帮助!

    专业密码生成器 专业生成密码的工具

    一款小巧的密码生成器,可以根据用户的需要生成所需的密码

    好用小型的密码生成工具

    密码生成工具

    简单的随机密码生成工具

    简单的随机密码生成工具,简单的随机密码生成工具,简单的随机密码生成工具,简单的随机密码生成工具

    linux svn密码生成工具

    linux中svn密码定制比较死板,现在有个密码生成器可以产生很多密码供使用,这样svn 管理员就可以轻松地管理密码表了。也保证了svn权限的安全

    随机密码生成工具 v1.0

    随机密码生成工具是一个以html+js进行开发的密码随机生成器。1、能够快速搭建随机密码工具2、至少在注册账户不需要思考哪些才是安全密码3、HTML页面,支持HTML的空间都可以4、基于BootStrap框架,界面还是比较简单的

    Python简单的密码生成器工具

    内容概要: 这段Python代码是一个密码生成器工具,名为 "PasswordGenerator",它可以生成随机的强密码。 适用人群: 适用于任何需要创建强密码的个人用户、网站注册用户、系统管理员和安全专业人员,无论是在账户管理...

    绿色随机密码生成器,自动生成密码工具,随机码生成小工具

    绿色随机密码生成器,可生成任意长度超强密码,是网管、技术员的居家必备良器

    随机密码生成工具-基于C++编写

    用C++编写的随机密码生成工具软件,简单易懂

    随机密码生成器密码生成工具

    简单实用的密码生成工具 可以随机生成密码 声称不会重复的密码 安全可靠

    批量生成卡号密码工具

    批量生成 卡号 密码 工具 批量生成 卡号 密码 工具

Global site tag (gtag.js) - Google Analytics