• 按键公众号 :
按键精灵电脑版
立即下载

软件版本:2014.06
软件大小:22.9M
更新时间:2021-12-03

按键精灵安卓版
立即下载

软件版本:3.7.2
软件大小:46.2M
更新时间:2023-05-10

按键精灵iOS版
立即下载

软件版本:1.8.0
软件大小:29.2M
更新时间:2023-03-21

按键手机助手
立即下载

软件版本:3.8.0
软件大小:262M
更新时间:2023-05-30

快捷导航

登录 后使用快捷导航
没有帐号? 注册

发新话题 回复该主题

[技术交流] 【院刊】-【201409期】再也不用担心用户密码泄露啦(QUI输入) [复制链接]

1#

再也不用担心用户密码泄露啦(QUI)

作者:linggan0604 编辑:果果。。

首先感谢我们的作者大大@linggan0604 给大家带来了一篇经验分享大补文。

各位大大有没有试过,在QUI界面输入用户名密码之后,打开小精灵根目录下的uservar.ini文件仔细看看。。。理想中ini文件中,我们的用户密码应该是存储为:******,

您所在的用户组无法下载或查看附件


可实际上……我的用户名密码就这样。。公之于众,大家都知道了

您所在的用户组无法下载或查看附件



[backcolor=rgb(255, 255, 255)]

如何保护自己的账号密码安全?


加密/解密原理:

通过一段加密/解密代码,将我们的密码,加密后存储到uservar.ini配置文件中。这样,别人通过uservar.ini配置文件查到的我们的用户名密码,其实是假的。
而需要读取uservar.ini中用户名密码的时候,我们再通过解密代码,读取到真实的密码。

我们今天介绍的转变,则是通过调用Rnd函数,产生的伪随机数列进行加密/解密。


下面针对加解密的代码详细讲解:

  1. Function 加解密(源文件, 秘钥)
  2. Dim Z, i
  3. Dim A, B, C
  4. 加解密 = ""
  5. If Len(源文件) = 0 Then’如果密码为空,则初始化为空
  6. 加解密 = ""
  7. Exit Function
  8. End If
  9. '调用Rnd函数使以后Rnd函数所产生的Rnd为相同的伪随机数列
  10. Z = Rnd(-秘钥)
  11. For i = 1 To Len(源文件)’将密码字符串一个一个字符通过加密,转换成另一个字符
  12. C = Mid(源文件, i, 1)
  13. A = Asc(C)
  14. B = Int(126 * Rnd) And&H7F’这里的&H7F,是指生成的伪随机代码,只取7位,以免数据溢出
  15. A = A Xor B’Xor是可逆的,第一次运行时是得到加密后的数据,再运行一次是得到解密后的数据
  16. C = Chr(A)
  17. 加解密 = 加解密 + C
  18. Next
  19. End Function
复制代码


举个小QUI的例子吧~



  1. Function 加解密(源文件, 秘钥)
  2. Dim Z, i
  3. Dim A, B, C
  4. 加解密 = ""
  5. If Len(源文件) = 0 Then
  6. 加解密 = ""
  7. Exit Function
  8. End If
  9. '调用Rnd函数使以后Rnd函数所产生的Rnd为相同的伪随机数列
  10. Z = Rnd(-密钥)
  11. For i = 1 To Len(源文件)
  12. C = Mid(源文件, i, 1)
  13. A = Asc(C)
  14. B = Int(126 * Rnd) And&H7F
  15. A = A Xor B
  16. C = Chr(A)
  17. 加解密 = 加解密 + C
  18. Next
  19. End Function

  20. Event Form1.Load
  21. //获取小节名(如"e1df741f-d5ec-4ad7-969d-adb139c6a24f"),同一个Q文件生成的小节名不变
  22. a = GetMacroID()//获取到当前脚本/小精灵de ID
  23. 加密文件=Plugin.File.ReadINI("e1df741f-d5ec-4ad7-969d-adb139c6a24f","Form1.InputBox2.Text", ".\uservar.ini")
  24. 解密文件 = 加解密(加密文件, 1234567890)'这里的1234567890是假使的密钥,可以修改,注意保密
  25. Form1.InputBox2.Text = 解密文件
  26. End Event

  27. //写入密码信息
  28. 源文件 = Form1.InputBox2.Text
  29. 加密文件 = 加解密(源文件, 1234567890)
  30. CallPlugin.File.WriteINI("e1df741f-d5ec-4ad7-969d-adb139c6a24f","Form1.InputBox2.Text", 加密文件, ".\uservar.ini")

  31. //输出信息
  32. RunApp "notepad.exe"
  33. SayString Form1.InputBox1.Text
  34. KeyPress "Enter", 1
  35. SayString 源文件
复制代码



经过加密之后呢,我所看到的uservar.ini中的用户名密码呢,已经是加密过的了

您所在的用户组无法下载或查看附件


不过熊孩纸们,要注意保护咱自己的密钥和加密代码,如果别人知道了你的加密过程,相对应的也就能倒退逆序算出你的解密过程。没有一个加密是万无一失的,当然如果你能保护好自己的密钥和加密代码,别人来破解你加密后的内容,困难就更大了。




作者大大有话说:

非常感谢果果的肯定和分享!~我也希望这个知识能造福更多的人~在这里我还是有几点要解释下,毕竟院刊篇幅有限,有的说的不是特别详尽,有的童鞋可能会想岔。
第一,类似知识不管免费收费都能用到,比如我写的脚本就是给学弟学妹用的,不打算收钱,那写免费脚本的会这个就很有用了。

第二,脚本必须做到三个功能,一是用户任何时候打开ini文件都看不到真正密码,二是用户关闭小精灵,下次再开启时,不需要再次输入密码,所以ini不能删除,三是用户可以在QUI界面随时删除个别密码字符而正常使用,所以用MD5不太好实现这一点。
大家也可以对比下原帖看下我的解释~欢迎大家的吐槽和提意见~
原帖地址: [分享源码] 几行搞定QUI界面用户密码加密写入uservar.ini,再也不用担心用户密码泄露啦~

    已有5评分我要评分查看所有评分

    本主题由 超级版主 瑞祥幽冥狼 于 2023/10/5 18:36:17 执行 审核帖子 操作
    <strong>按键学院交流群(开放中):376122403<br />
    <br />
    <a href="http://bbs.anjian.com/thread-548439-1-1.html" target="_blank">按键学院开班<strong> <font color="Red">【安卓导师】+【实战导师】招聘导师</font></strong>啦~~<font color="Red"><strong>待遇特别好,有钱,就是任性。</strong> </font></a><br />
    <br />
    <br />
    <a href="http://bbs.anjian.com/t
    2#

    看看什么情况

    3#


    承接各类游戏脚本,办公,手游,页游,android,los等
    QQ: 523890679 微信:523890679
    4#

    好好学习,天天向上

    5#

    试试

    6#

    学习学习

    7#


    8#


    9#

    按时打算

    为了做脚本而游戏
    10#

    其实是假的。而需要读取uservar.ini中用户名密码的时候,我们再通过解密代码,读取到真实的密码。

    11#

    这个可以有

    12#

    mjuy67

    13#


    接单 728263
    14#

    谢谢分享哦

    15#


    16#

    学习学习。。

    17#

    1111111111111234







    Yeah分享

    18#

    大神之作

    19#

    到真实的密码。

    我们今天介绍的转变,则是通过调用Rnd函数,产生的伪随机数列进行加密/解密。

    正在撰写博客,按键代码之手到擒来篇
    20#


    发新话题 回复该主题