• 欢迎光临~

【转载】用你的Excel打造一个随机密码生成器

开发技术 开发技术 2022-01-26 100次浏览

密码管理的重要性不言而喻,火箭君也曾多次撰文提醒大家要主要自己的密码安全性。那么本期,就和火箭君一起在excel中打造随机密码生成器,让你的密码安全由你自己来掌握。

首先,我们要解决的问题是,如何创建密码中的各个字符。

>>>创建随机数字

【转载】用你的Excel打造一个随机密码生成器

随机数字的创建可能小伙伴们都比较熟悉,通过使用RAND()或者RANDBETWEEN()这两个函数,可以创建出从0~9这10个数字。但是要注意的是,RANDBETWEEN函数参数中的最大值也包含在随机结果中,因此最大值参数应该设定为9,而不是10。

当然如果你想生成只含数字的密码,比如生成一个5位数字,你也可以这样操作:

【转载】用你的Excel打造一个随机密码生成器

>>>创建随机字母

【转载】用你的Excel打造一个随机密码生成器

【转载】用你的Excel打造一个随机密码生成器

相较于大家熟知的随机数字,随机字母其实不太常用。创建随机字母,我们需要用到CHAR()函数,通过CHAR()函数将随机产生的10进制数字转换为ANSI码中对应的字符。

规则如下:

【转载】用你的Excel打造一个随机密码生成器

因此,大写字母对应的是65~90,而小写字母对应的则是97~122。

由此可见,如果我们要生成一个5位密码,且第一位为小写字母,第二位为数字,第三位为大写字母,第四、第五位又是数字,则可以如此操作:

【转载】用你的Excel打造一个随机密码生成器

>>>创建包含随机字母、数字与字符的密码

如果你仔细观察ANSI码,它其实还包含了对于一些特殊字符的定义,比如说感叹号为33,冒号为58。利用这个规则,我们还可以编写一个同时包含字母、数字与字符的随机值。

【转载】用你的Excel打造一个随机密码生成器

>>>创建随机长度且包含随机字母、数字与字符的密码

如果你还想进一步挑战难度,你也可以试着创建一个随机长度且包含随机字母、数字与字符的密码。当然,这靠函数有点强人所难,VBA则恰到好处:

Public Function RandomizeF(Num1 As Integer, Num2 As Integer)

Dim Rand As String

Application.Volatile

getLen = Int((Num2 + 1 - Num1) * Rnd + Num1)

Do

    i = i + 1

    Randomize

    Rand = Rand & Chr(Int((85) * Rnd + 38))

Loop Until i = getLen

RandomizeF = Rand

End Function

复制上述代码,并在VBA中新建一个模块,将其复制,这样我们就可以在工作表中调用这个RandomizeF函数了。

【转载】用你的Excel打造一个随机密码生成器

程序员灯塔
转载请注明原文链接:【转载】用你的Excel打造一个随机密码生成器
喜欢 (0)
违法和不良信息举报电话:022-22558618 举报邮箱:dljd@tidljd.com