网站首页 > 技术教程 正文
大家好,我是郭立员,今天是一篇密码生成器源码讲解的教程
一、效果演示:
二、源码分享
UI.NewLayout ("密码生成器")
UI.AddTextView("密码生成器", "文字框1", "密码组合:")
UI.NewRow("密码生成器", "new_row_1")
UI.AddLine ("密码生成器", "line_1")
UI.NewRow("密码生成器", "new_row_1")
UI.AddCheckBox("密码生成器", "多选框1","数字", false)
UI.AddCheckBox("密码生成器", "多选框2","大写字母", false)
UI.AddCheckBox("密码生成器", "多选框3","小写字母", false)
UI.NewRow("密码生成器", "new_row_1")
UI.AddCheckBox("密码生成器", "多选框4","自定义字符", false)
UI.AddEditText("密码生成器", "输入框1", "",250)
UI.NewRow("密码生成器", "new_row_1")
UI.NewRow("密码生成器", "new_row_1")
UI.AddTextView("密码生成器", "文字框1", "数量设置:")
UI.NewRow("密码生成器", "new_row_1")
UI.AddLine ("密码生成器", "line_1")
UI.NewRow("密码生成器", "new_row_1")
UI.AddTextView("密码生成器", "文字框2", "密码长度")
UI.AddEditText("密码生成器", "输入框2", "6",154)
UI.AddTextView("密码生成器", "文字框3", "生成数量")
UI.AddEditText("密码生成器", "输入框3", "1",154)
UI.NewRow("密码生成器", "new_row_1")
UI.AddButton("密码生成器", "按钮1", "生成",630,100)
UI.NewRow("密码生成器", "new_row_1")
UI.NewRow("密码生成器", "new_row_1")
UI.AddEditText("密码生成器", "结果显示", "",630,300)
UI.NewRow("密码生成器", "new_row_1")
UI.NewRow("密码生成器", "new_row_1")
UI.SetOnClick("按钮1", 生成)
UI.Show ("密码生成器")
Function 生成()
Dim 库
Dim 数字= UI.GetValue("多选框1")
If 数字["多选框1"] Then
库 = 库&"0123456789"
End If
Dim 大写= UI.GetValue("多选框2")
If 大写["多选框2"] Then
库 = 库&"abcdefghijklmnopqrstuvwxyz"
End If
Dim 小写= UI.GetValue("多选框3")
If 小写["多选框3"] Then
库 = 库&UCase("abcdefghijklmnopqrstuvwxyz")
End If
Dim 自定义= UI.GetValue("多选框4")
If 自定义["多选框4"] Then
Dim 自定义字符= UI.GetValue("输入框1")
库 = 库&自定义字符["输入框1"]
End If
TracePrint 库
If 库 = null Then
TracePrint 库
ShowMessage "未勾选密码组合"
End If
Dim 数量 = UI.GetValue("输入框3")
TracePrint 数量["输入框3"]
Dim 长度 = UI.GetValue("输入框2")
TracePrint 长度["输入框2"]
Dim 结果 = {null}
For i = 1 to 数量["输入框3"]
Dim 随机字符 = ""
For 长度["输入框2"]
Dim 随机数 = int(len(库)*Rnd()+1)
随机字符 = 随机字符 & mid(库,随机数,1)
Next
结果[i] = 随机字符
Next
TracePrint join(结果,"|")
UI.SetEditText ("结果显示", join(结果,"\n"),630,300)
End Function
三、原理讲解
关于动态界面部分的代码就不说了,按照自己喜欢的样子搭建就行,重点说说随机字符的生成部分。
(1)随机库的构建
所谓随机库就是生成随机字符的来源,比如我们这个例子中,随机的可能性有数字、大写字母、小写字母和自定义的字符。
把所有随机的可能性拼接在一起就得到随机库了。
0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
(2)随机数的范围
所有随机相关的操作,本质上都是由随机数控制的,那么本次案例中随机数的范围是1-随机库的字符数,如果随机库有100个字符,那么随机数的范围就是1-100。
(3)得到单一随机字符
在得到一个有效的随机数后,把它当做随机库中每个字符的编号,这样就可以得到一个随机的字符。
(4)获取随机字符段
重复执行获取单一随机字符,把多个随机字符拼接在一起就是随机字符段,通过控制重复的次数,就可以指定随机字符段的长度了。
(5)生成多个随机字符段
重复执行获取随机字符段的操作,注意每次生成前先清空上一次的生成结果。
写到这里简单的随机字符就写完了,下面做一些延展:
(1)生成首字母的随机字符
(2)去掉接近的字符,比如0和o,1和L,为了防止生成的随机字符对于使用者有干扰,可以去掉这些字符。
像这些扩展功能,其实就是调用不同的随机库,比如首字母,就是第一个随机数调用的随机库是字母,同理去掉接近字符是在随机库里面去掉这些字符。
=正文完=
猜你喜欢
- 2024-10-22 历史最牛的按键精灵插件介绍,学会少走很多弯路
- 2024-10-22 「按键精灵安卓版」本地文字识别(按键精灵 获取文字)
- 2024-10-22 「按键精灵」安卓按键的命名规范(安卓6.0按键精灵手机版)
- 2024-10-22 按键精灵怎么用(按键精灵怎么用别人脚本)
- 2024-10-22 按键精灵定时器介绍和使用,不会的小伙伴速速看看精辟
- 2024-10-22 按键精灵代码注释功能(按键精灵代码教程)
- 2024-10-22 如何在最短的时间内掌握按键精灵逻辑运算符的使用
- 2024-10-22 (使用按键精灵这个功能后)!网友全都震惊了~~~
- 2024-10-22 按键精灵按钮命令讲解,你在看不懂就........
- 2024-10-22 按键精灵安卓版通过获取文字坐标进行点击(源码分享)
你 发表评论:
欢迎- 07-15Rocky Linux Nginx 自动更新免费 SSL,全流程实战
- 07-15nginx-1.22.1在linux服务器上的安装
- 07-15Rocky Linux 9 系统下安装Nginx(在linux中安装nginx)
- 07-15Rocky Linux 9.x 从零安装 Nginx 全流程:源码编译 + dnf 安装方案详解
- 07-15Linux-Nginx-反向代理篇-02(nginx反向代理apache)
- 07-15RockyLinux 9快速部署Nginx+HTTPS(基于DNF安装)
- 07-15Stellar Repair for MySQL:受损 MySQL 数据库的专业恢复工具
- 07-15在CentOS7系统源码安装Nginx+MySQL+PHP+Go
- 最近发表
-
- Rocky Linux Nginx 自动更新免费 SSL,全流程实战
- nginx-1.22.1在linux服务器上的安装
- Rocky Linux 9 系统下安装Nginx(在linux中安装nginx)
- Rocky Linux 9.x 从零安装 Nginx 全流程:源码编译 + dnf 安装方案详解
- Linux-Nginx-反向代理篇-02(nginx反向代理apache)
- RockyLinux 9快速部署Nginx+HTTPS(基于DNF安装)
- Stellar Repair for MySQL:受损 MySQL 数据库的专业恢复工具
- 在CentOS7系统源码安装Nginx+MySQL+PHP+Go
- linux通过yum安装nginx和mysql(linux在线安装nginx)
- Chat to MySQL 最佳实践:MCP Server 服务调用
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)