再也不用担心用户密码泄露啦(QUI)
作者:linggan0604 编辑:果果。。
首先感谢我们的作者大大@linggan0604 给大家带来了一篇经验分享大补文。
各位大大有没有试过,在QUI界面输入用户名密码之后,打开小精灵根目录下的uservar.ini文件仔细看看。。。理想中ini文件中,我们的用户密码应该是存储为:******, |
- 您所在的用户组无法下载或查看附件
可实际上……我的用户名密码就这样。。公之于众,大家都知道了 |
- 您所在的用户组无法下载或查看附件
[backcolor=rgb(255, 255, 255)]如何保护自己的账号密码安全?
加密/解密原理:
通过一段加密/解密代码,将我们的密码,加密后存储到uservar.ini配置文件中。这样,别人通过uservar.ini配置文件查到的我们的用户名密码,其实是假的。而需要读取uservar.ini中用户名密码的时候,我们再通过解密代码,读取到真实的密码。
我们今天介绍的转变,则是通过调用Rnd函数,产生的伪随机数列进行加密/解密。
下面针对加解密的代码详细讲解:
- Function 加解密(源文件, 秘钥)
- Dim Z, i
- Dim A, B, C
- 加解密 = ""
- If Len(源文件) = 0 Then’如果密码为空,则初始化为空
- 加解密 = ""
- Exit Function
- End If
- '调用Rnd函数使以后Rnd函数所产生的Rnd为相同的伪随机数列
- Z = Rnd(-秘钥)
- For i = 1 To Len(源文件)’将密码字符串一个一个字符通过加密,转换成另一个字符
- C = Mid(源文件, i, 1)
- A = Asc(C)
- B = Int(126 * Rnd) And&H7F’这里的&H7F,是指生成的伪随机代码,只取7位,以免数据溢出
- A = A Xor B’Xor是可逆的,第一次运行时是得到加密后的数据,再运行一次是得到解密后的数据
- C = Chr(A)
- 加解密 = 加解密 + C
- Next
- End Function
复制代码
举个小QUI的例子吧~
- Function 加解密(源文件, 秘钥)
- Dim Z, i
- Dim A, B, C
- 加解密 = ""
- If Len(源文件) = 0 Then
- 加解密 = ""
- Exit Function
- End If
- '调用Rnd函数使以后Rnd函数所产生的Rnd为相同的伪随机数列
- Z = Rnd(-密钥)
- For i = 1 To Len(源文件)
- C = Mid(源文件, i, 1)
- A = Asc(C)
- B = Int(126 * Rnd) And&H7F
- A = A Xor B
- C = Chr(A)
- 加解密 = 加解密 + C
- Next
- End Function
- Event Form1.Load
- //获取小节名(如"e1df741f-d5ec-4ad7-969d-adb139c6a24f"),同一个Q文件生成的小节名不变
- a = GetMacroID()//获取到当前脚本/小精灵de ID
- 加密文件=Plugin.File.ReadINI("e1df741f-d5ec-4ad7-969d-adb139c6a24f","Form1.InputBox2.Text", ".\uservar.ini")
- 解密文件 = 加解密(加密文件, 1234567890)'这里的1234567890是假使的密钥,可以修改,注意保密
- Form1.InputBox2.Text = 解密文件
- End Event
- //写入密码信息
- 源文件 = Form1.InputBox2.Text
- 加密文件 = 加解密(源文件, 1234567890)
- CallPlugin.File.WriteINI("e1df741f-d5ec-4ad7-969d-adb139c6a24f","Form1.InputBox2.Text", 加密文件, ".\uservar.ini")
- //输出信息
- RunApp "notepad.exe"
- SayString Form1.InputBox1.Text
- KeyPress "Enter", 1
- SayString 源文件
复制代码
经过加密之后呢,我所看到的uservar.ini中的用户名密码呢,已经是加密过的了
- 您所在的用户组无法下载或查看附件
不过熊孩纸们,要注意保护咱自己的密钥和加密代码,如果别人知道了你的加密过程,相对应的也就能倒退逆序算出你的解密过程。没有一个加密是万无一失的,当然如果你能保护好自己的密钥和加密代码,别人来破解你加密后的内容,困难就更大了。
作者大大有话说:
非常感谢果果的肯定和分享!~我也希望这个知识能造福更多的人~在这里我还是有几点要解释下,毕竟院刊篇幅有限,有的说的不是特别详尽,有的童鞋可能会想岔。
第一,类似知识不管免费收费都能用到,比如我写的脚本就是给学弟学妹用的,不打算收钱,那写免费脚本的会这个就很有用了。第二,脚本必须做到三个功能,一是用户任何时候打开ini文件都看不到真正密码,二是用户关闭小精灵,下次再开启时,不需要再次输入密码,所以ini不能删除,三是用户可以在QUI界面随时删除个别密码字符而正常使用,所以用MD5不太好实现这一点。大家也可以对比下原帖看下我的解释~欢迎大家的吐槽和提意见~
原帖地址:
[分享源码] 几行搞定QUI界面用户密码加密写入uservar.ini,再也不用担心用户密码泄露啦~