您见过最强的密码是什么样的?60位够不够?

d3fe29a909d9e8b7ba3caf3eb414075a.png

密码之于计算机,好比钥匙之于房门。有了钥匙才能开门入室,有了密码才能进行各种登录验证、文件解压等等。在之前的一期(你的QQ、微信账号安全吗?干货都在这里)中介绍了密码设置重要性,可能不少人设置密码时会不自觉地选择和自己相关地一些数字或文字信息以方便记忆,但对于现在大数据时代而言,这样设置是及其不安全的。

今天给大家介绍如何通过matlab打造属于的密码生成器,程序中所使用的函数主要包括randperm(产生随机整数序列)、uiputfile(文件保存对话框)等。本程序可以实现纯数字、纯字母、数字字母混合、数字字母符号混合等多种不同密码组合模式,能保存生成的密码和保存时间,再也不用担心忘记密码,程序界面如下:

586c4b5b0d050962b8ef882514330dee.png

程序原理简介:先定义数字、大小写、符号等字符集,由密码长度决定循环终止条件,每次循环中通过randperm函数来随机提取字符集中的字符最终生成密码串。保存密码则通过通过对话框函数uiputfile来实现。

程序界面源代码

clc;clear;close all;
%% 创建界面
scr = get(groot,'ScreenSize');
pict=figure('position',[scr(3)/2-200,scr(4)/2-100, 500,250],'name','感谢关注matlab爱好者公众号','NumberTitle','off','menubar','none','toolbar','none',...
'Resize','off');
text01=uicontrol(pict,'style','text','position',[0 235 500 10],'string','******************************************************************************************','FontSize',10,'ForegroundColor','b');
text02=uicontrol(pict,'style','text','position',[100 195 320 40],'string','专用密码生成器','FontSize',20,'ForegroundColor','r');
text03=uicontrol(pict,'style','text','position',[0 192 500 10],'string','******************************************************************************************','FontSize',10,'ForegroundColor','b');
text1 = uicontrol(pict,'style','text','position',[145 155 130 30],'string','密码长度:','FontSize',15,'ForegroundColor','b');
con1 = uicontrol(pict,'style','edit','position',[255 157 80 30],'string','20','FontSize',15,'ForegroundColor','r');
% 模式选择
text2 = uicontrol(pict,'style','text','position',[0 120 85 30],'string','密码模式:','FontSize',12,'ForegroundColor','b');
radiob1 = uicontrol(pict,'style','Radiobutton','position',[78 123 70 30],'string','仅数字','FontSize',12,'ForegroundColor','b');
set(radiob1,'Callback', 'set(radiob1,"value",1);set(radiob2,"value",0);set(radiob3,"value",0);set(radiob4,"value",0)');
radiob2 = uicontrol(pict,'style','Radiobutton','position',[148 123 70 30],'string','大小写','FontSize',12,'ForegroundColor','b');
set(radiob2,'Callback', 'set(radiob1,"value",0);set(radiob2,"value",1);set(radiob3,"value",0);set(radiob4,"value",0)');
radiob3 = uicontrol(pict,'style','Radiobutton','position',[218 123 120 30],'string','数字+大小写','FontSize',12,'ForegroundColor','b');
set(radiob3,'Callback', 'set(radiob1,"value",0);set(radiob2,"value",0);set(radiob3,"value",1);set(radiob4,"value",0)');
radiob4 = uicontrol(pict,'style','Radiobutton','position',[330 123 160 30],'string','数字+大小写+字符','FontSize',12,'ForegroundColor','b');
set(radiob4,'Callback', 'set(radiob1,"value",0),set(radiob2,"value",0),set(radiob3,"value",0);set(radiob4,"value",1)');
set(radiob1,"value",1);
text4=uicontrol(pict,'style','text','position',[0 105 500 20],'string','++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++','FontSize',10,'ForegroundColor','r');
text3 = uicontrol(pict,'style','text','position',[0 75 90 30],'string','当前密码:','FontSize',14,'ForegroundColor','r');
con2 = uicontrol(pict,'style','edit','position',[90 79 400 30],'string','','FontSize',12,'ForegroundColor','b');
text04=uicontrol(pict,'style','text','position',[0 65 500 20],'string','++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++','FontSize',10,'ForegroundColor','r');
%% 执行程序
uicontrol(pict,'style','pushbutton','position',[20 20 150 30],'string','生成密码','FontSize',14,'ForegroundColor','b','CallBack',...
'generatePassword(con1,con2,radiob1,radiob2,radiob3,radiob4);');
uicontrol(pict,'style','pushbutton','position',[180 20 150 30],'string','保存密码','FontSize',14,'ForegroundColor','b','CallBack',...
'savePassWord(con2);');
uicontrol(pict,'style','pushbutton','position',[340 20 150 30],'string','退出程序','FontSize',14,'ForegroundColor','r','CallBack','delete(pict);');

以上就是今天全部内容!

祝大家端午节快乐!

感兴趣的伙伴可根据本文提示自己补充密码生成和保存部分。完整源代码已上传至原创代码与科研论文Q群,在matlab爱好者公众号中回复“原创”即可加群,欢迎愿意支持巴山的关注者加群领取。

如有问题或建议,请在文章底部留言,感谢大家对matlab爱好者公众号的一如既往地支持!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值