如何创建随机密码生成器
已发表: 2022-01-29PCMag 的普通读者都知道,我们强烈建议为每个网站使用复杂且唯一的密码,而做到这一点的唯一方法是借助密码管理器。 使用所有密码加载该工具是一个好的开始,但工作并不止于此。 除非您将每个弱密码和重复使用的密码替换为没人能猜到的唯一密码,甚至您都不记得,否则您不会受到完全保护。 蛮力密码破解攻击很可能会攻击像 Rover 这样的密码,但当密码是 ApiDiS57IhY1M#t%qIEg 之类的密码时,它会失败。
你从哪里得到你的密码?
问题是你从哪里得到这些随机密码? 几乎每个密码管理器都有自己的随机密码生成器,其中一些比其他的更好。 但是,在大多数情况下,该程序使用所谓的伪随机算法。 理论上,知道算法并有权访问您生成的其中一个密码的黑客可以复制所有后续生成的密码(尽管这将非常困难)。 如果您足够偏执,您可能想要创建自己的随机密码生成器。 我们可以帮助您使用 Microsoft Excel 构建它。
不可否认,一些安全任务超出了自己动手的领域,这是真的。 例如,您不会构建自己的虚拟专用网络或 VPN。 但是构建这个小项目不需要高级知识,只需要遵循指令的能力。 它不使用宏或花哨的东西,只是普通的 Excel 函数。 请注意,此项目必然依赖 Excel 的伪随机算法。 这里的不同之处在于,坏人可以研究嵌入在任何公开可用的密码管理器中的密码生成器,而他们无法访问您自制的密码生成器。
我们的顶级密码管理器精选
查看全部(4 项)创建密码生成器脚手架
首先,让我们创建将构建密码生成器的脚手架,即标签和静态组件。 请把东西准确地放在我描述的单元格中,这样公式就可以了。 一旦你让它工作,你可以调整它,让它完全属于你自己。
在单元格 B1 中,输入“随机密码生成器”或您希望为您的项目提供的任何标题。 从单元格 B3 开始向下,输入标签“长度”、“大写字母”、“小写字母”、“数字”和“特殊字符”。 跳过单元格 B8,在 B9 中输入“按 F9 重新生成”,在 B10 中输入“密码”。 它应该如下图所示。
在单元格 C3 中,输入 16,或您首选的默认密码长度。 在其下方的接下来的四个单元格中输入“是”。 现在在单元格 D4 中输入整个大写字母,在 D5 中输入整个小写字母。 在 D6 中输入 10 位数字以及要在 D7 中使用的任何特殊字符。 专业提示:将 0 放在数字列表的最后,而不是第一个,否则 Excel 会删除它。 完成的脚手架应如下所示:
添加生成密码的公式
首先,我们需要构建一个包含我们选择使用的所有字符的文本字符串。 这样做的公式看起来有点复杂,但实际上,它只是很长。 在单元格 D8 中输入此公式:
=IF(C4="是",D4,"") &IF(C5="是",D5,"") &IF(C6="是",D6,"") &IF(C7="是",D7, "")
& 运算符将文本字符串粘合在一起。 这个公式的意思是,对于四个字符集中的每一个,如果相邻单元格包含是,则包括字符集。 但是,如果该单元格包含除“是”以外的任何内容(无论大小写如何),请不要包含它。 现在就试试; 将一些 Yes 单元格更改为 No、Nay 或 Frog。 可用字符的字符串会更改以匹配您所做的。
接下来是生成随机密码的公式。 在单元格 C10 中,从这个初步版本开始:
=中间(D8,RANDBETWEEN(1,LEN(D8)),1)
我会从里到外打破那个。 LEN 函数返回您传递给它的任何值的长度,在本例中为可用字符串的长度。 毫不奇怪,调用 RANDBETWEEN 会在您给它的两个数字之间返回一个随机数,在本例中是一个和长度。 MID 函数返回输入字符串的一部分,从您传递的第一个数字开始,一直持续到您指定的字符数,在本例中只有一个。 因此,此公式从可用字符集中返回一个随机字符。 按 F9 告诉 Excel 重新计算所有函数; 尝试几次并观察随机字符变化。
当然,这只是一个字符,而不是整个密码。 下一步有点麻烦,但实际上并不难。 在功能栏中单击以编辑最后一个条目,在末尾附加一个 & 字符,突出显示除等号以外的所有内容,然后按 Ctrl+C 将其复制到剪贴板。 假设我们希望最大密码长度为 40 个字符。 因此,按 Ctrl+V 39 次。 删除最后的 & 号,按 Enter,就完成了。
好吧,你差不多完成了。 如前所述,此密码生成器始终创建 40 个字符的密码。 我们需要将其输出修剪到指定的长度。 此时保存您的工作,因为您将编辑那个长达一英里的公式; 您不想意外删除它!
选择生成密码的公式,然后在等号后面的公式栏中单击。 专业提示:此时按 Ctrl+Alt+U 可放大编辑栏。 键入 LEFT,后跟一个左括号。 滚动到公式的最后并键入逗号、C3 和右括号。 太棒了! 该公式现在将密码修剪为您选择的长度。
微调密码生成器
密码生成器此时已完全正常工作。 如果您对此感到满意,那就太好了:您已经做到了! 但是,如果您有兴趣,可以通过多种方式改进其外观和功能。 对于初学者,右键单击 D 列顶部的 D,然后从菜单中选择隐藏。 现在您不必查看字符集列表和中间计算。
通常,您希望在密码生成器中设置长度的上限和下限。 此外,如果您在“长度”字段中输入除数字以外的任何内容,则公式将失败。 我们可以解决这个问题。 单击定义长度的单元格 C3,单击功能区中的数据,然后选择数据验证。 如果您没有看到“数据验证”标签,请将电子表格拉得更宽一些。
在出现的弹出窗口中,单击允许下的下拉菜单并选择整数。 取消选中忽略空白框,并将最小值设置为 8,将最大值设置为 40。当它看起来像这里的屏幕截图时,单击下一个选项卡,输入消息。 作为输入消息,键入“输入从 8 到 40 的长度”。 将该文本复制到剪贴板并将其粘贴到错误警报选项卡的错误消息字段中,然后单击确定。 现在,当您单击“长度”单元格时,系统会提示您输入正确的长度,如果您输入错误,则会收到一条信息性错误消息。
我们的编辑推荐
准备好进行最后一次调整了吗? 在单元格 E1 中输入“是”,在其下方输入“否”。 单击单元格 C4,即标签大写字母右侧的单元格。 再次单击功能区中的数据并选择数据验证。 从下拉列表中选择列表,取消选中忽略空白,单击源框,然后突出显示单元格 E1 和 E2。 在输入消息选项卡上,输入“是或否”作为消息。 在错误警报页面上,输入“是或否”作为错误消息。 单击确定完成。 将此单元格复制到其下方的三个单元格中。
而已! 现在这四个单元格只接受是或否作为值。 更好的是,现在每个都获得了一个下拉列表,让您选择其中一个值。 哦,既然您已经完成了,请右键单击 E 列顶部的大 E 并选择隐藏,这样您就不会看到输入数据验证系统的单元格。
此时,您可能想要发挥创意并添加格式以使您的密码生成器看起来不那么工业化。 选择您喜欢的字体,添加颜色,调整内容,直到它看起来很棒。
最后,让我们锁定它,这样您就不会因为在错误的单元格中输入数据而意外破坏了公式。 突出显示单元格 C3 到 C7(即长度单元格加上四个是/否单元格),右键单击并选择设置单元格格式。 单击“保护”选项卡并取消选中名为“已锁定”的复选框,然后单击“确定”。 单击功能区中的审阅,然后单击保护工作表。 只需单击确定以接受结果对话框中的设置; 您不是在尝试对工作表进行密码保护,而只是为了保护它免受手指摸索。 保存光荣的结果!
在 Google 表格中制作密码生成器
我是 Excel 高手,在 Google 表格出现之前就一直如此。 也许甚至在谷歌存在之前! 但我知道很多人都对 Google 表格发誓,所以我启动它以确保它支持这个项目。
我按照自己的说明在 Sheets 中构建密码生成器,发现一切正常,直到显示一个随机字符的公式。 一切正常,但按 F9 未能刷新一个新的随机字符。 咨询谷歌,我发现要强制刷新必须按 F5,从而更新整个页面,或者更改任何单元格的值。 这很尴尬但可行。 我将提示更改为“按 F5 重新生成”。
我没有重新创建执行完整密码生成的巨大公式,而是从我的 Excel 工作表中复制了它。 哈利路亚! 有效! 我不会在这里详细介绍,但我设法重新创建了数据验证规则并隐藏了不需要的列。 如果您使用的是表格而不是 Excel,此项目仍然可以为您工作。
你做到了!
无论您是接受基本版本还是继续应用花哨的调整,您现在都拥有自己编写的密码生成器。 诚然,Excel 确实使用了伪随机数生成器,但您可以通过在接受生成的密码之前反复点击 F9 来添加自己的随机性。 虽然黑客可能会对数百万人使用的密码管理产品中的密码生成器进行逆向工程,但您的一次性实用程序并没有受到关注。 你做到了!