之前给大家推送过用纯matlab脚本制作的密码生成器(详见:您见过最强的密码是什么样的?60位够不够?),在之前的基础之上对密码的生成规则做了部分改进,在密码模式的选择上也更加灵活,支持数字、小写、大写以及自定义符号的任意组合,支持自定义生成的密码组数,UI采用appdesigner设计。
本程序可以实现纯数字、纯字母、数字字母混合、数字字母符号混合等多种不同密码组合模式,能保存生成的密码和保存时间,再也不用担心忘记密码,程序界面如下:
密码生成规则的改进包括,摒弃了matlab的randperm函数进而是采用了C语言更为安全的rand_s函数,每一位密码均是从来所选字符集合中随机提取;支持检测所生成的密码中是否含有连续的数字或字母的正反序列,即0至9,a到z以及A到Z,若勾选【连续数字或字母】,则存在3个及以上连续的数字或字母的正反序列的密码将不会被输出,如密码中有456、9874、abc与HIJK等;支持检测所生成的密码中是否含有连续的键盘字母的正反序列,如asdfghjkl,若勾选【连续键盘字母】,则存在3个及以上连续的键盘字母的正反序列的密码将不会被输出,如密码中有QWER、asdf等。生成并保存后的结果图如下:
为了提高程序执行效率,密码生成部分的代码采用C语言编写,并使用mex封装为generatePasswordMex函数。相关的appdesigner代码以及密码生成函数已打包上传网盘,需要的伙伴请在巴山学长公众号中回复“密码”或“PW”即可获取。
用于生成密码的C语言源代码generatePasswordMex.c已上传至原创代码与科研论文Q群,该代码可直接在matlab中使用mex函数进行编译封装(编译器使用的vs2022),愿意支持巴山的伙伴们可在巴山学长公众号中回复“原创”加群领取,群中目前有70多款代码分享,并持续更新中。
以上就是今天全部内容!感谢伙伴们的阅读与分享!下一篇中将使用密码生成器制作一款更有意思的实用小工具,相信绝大部分伙伴科研生活工作日常中都能用得上,敬请期待。
如有问题或建议,请在文章底部留言