赞 | 11 |
VIP | 0 |
好人卡 | 0 |
积分 | 28 |
经验 | 0 |
最后登录 | 2024-10-28 |
在线时间 | 330 小时 |
Lv3.寻梦者
- 梦石
- 0
- 星屑
- 2756
- 在线时间
- 330 小时
- 注册时间
- 2020-7-23
- 帖子
- 140
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
首先先祝老师们教师节快乐!
以下是已经自身亲身实践过的!有问题可以回帖留言!
实现的功能:1.Excel中生成符合条件的随机数,这样会生成一组兑换码!再经过一系列加密解密算法后,验证兑换码正确与否。
优点:不再被破解,或者说破解可能性大大减少!独立性,每个兑换码都独立,每人只能领一次,但是还可以多存档使用。
步骤:
1.打开excel,打开excel中的开发工具,里面有个VB编程!
2.以下是代码:’把下面复制黏贴就行了!
Sub Rnd_Number()
Dim i1, i2, i3, i4, i5, i6, i7, i8
On Error Resume Next '忽略运行过程中可能出现的错误
Set MySheet1 = ThisWorkbook.Worksheets("Sheet1") '定义工作表Sheet1
i7 = 1 '初始值,对应列,ABCD列
i8 = 1 '初始值,从第1行开始
For i2 = 1 To 10000 '执行约10000次循环,条件满足就退出
Randomize '初始化随机数生成器
i1 = Int(Rnd() * 90000000 + 10000000) '生成随机数
i3 = i1 * 268250 '加密算法开始
i4 = i3 + 520862
i5 = i4 Mod 987654
i6 = i5 \ 1000000
If i6 <= 50 Then MySheet1.Cells(i7, i8) = i1 '如果用户输入的I6(这里是随机数I6)符合条件则输出到(i7,i8)单元格
If i8 <= 100 Then i8 = i8 Else i8 = i8 + 1
Dim A, B, C, D '验证兑换码是否符合解密条件
A = MySheet1.Cells(i7, i8)
If (((A * 268250) + 520862) Mod 987654) \ 1000000 Then MySheet1.Cells(i7, i8 + 1) = A
i7 = i7 + 1 '这里确保了单元格的移动
i2 = i2 + 1 '这里确保了i2执行FOR循环
Next
End Sub
3.编辑完成后,按F5运行代码,会生产2列数据。第一列数据是原始数据,符合加密算法的数据。第二列数据是验证第一列数据是否符合加密算法。
4.Excel获得一系列数据后,返回RMMV中。
5.RMV以下操作:
①让用户输入数值,把这个数值保存在一个变量A中
②用IF分支条件,让变量A运行加密算法,这个根据自己的算法来具体看情况。
③如果变量A符合加密算法则.....不正确则.....
|
-
1.png
(317.77 KB, 下载次数: 11)
评分
-
查看全部评分
|