pwover 发表于 2009-9-17 13:42:21

关于_StringEncrypt加密问????很急!!

本帖最后由 pwover 于 2009-9-18 11:57 编辑

#include <File.au3>
#include <string.au3>
#include <Process.au3>
#include "qqpswd.au3"

Opt("SendCapslockMode",0)
$title = "QQ用户登录"
If WinExists("QQ用户登录") Then
        $qqpath = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\TENCENT\QQ", "install")
Else
        $qqpath = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\TENCENT\QQ2009", "Install")
EndIf
If Not FileExists('qq.ini') Then
        IniWrite("qq.ini", "setup", "qq", '')
        IniWrite("qq.ini", "setup", "qqpath", $qqpath)
EndIf
$qqpath = IniRead('qq.ini', "setup", "qqpath", "0")
$qqhm = IniRead('qq.ini', "setup", "qq", "0")
If $qqhm = '0' Or $qqhm = '' Then
        $qqhm = InputBox("QQ登录器", "请输入QQ号码:", "", "", "125", "125", "-1", "-1")
        $qqmm = InputBox("QQ登录器", "请输入QQ密码:", "", "*", "125", "125", "-1", "-1")
        $qqmm = _StringEncrypt(1, $qqmm, "107")
        IniWrite("qq.ini", "setup", "qq", $qqhm)
        IniWrite("qq.ini", $qqhm, "qqmm", $qqmm)
EndIf
$hm_n = StringSplit($qqhm, ",")

For $i = 1 To $hm_n
        If $hm_n > 1 And $i > 1 Then
                If MsgBox(4, "注意:", "您设置了多个QQ号码,是否继续登录QQ号:" & $hm_n[$i]) <> 6 Then Exit
        EndIf
        $qqhm = $hm_n[$i]
        $qqmm = IniRead('qq.ini', $qqhm, 'qqmm', '0')
        If $qqmm = '0' Or $qqmm = '' Then
                $qqmm = InputBox($qqhm, "请输入QQ密码:" & '(' & $qqhm & ')', "", "*", "125", "125", "-1", "-1")
                $qqmm = _StringEncrypt(1, $qqmm, "107")
                IniWrite("qq.ini", $qqhm, "qqmm", $qqmm)
        EndIf
        $qqmm = _StringEncrypt(0, $qqmm, "107")

        If Not FileExists($qqpath) Then $qqpth = findqq(@DesktopDir)
        If Not FileExists($qqpath) Then $qqpth = findqq(@DesktopCommonDir)
        If Not FileExists($qqpath) Then
                MsgBox(0, '错误!', '请检查QQ.INI文件qqpath=' & $qqpath & @LF & '这一行QQ.EXE文件的路径设置是否正确!')
                Exit
        EndIf

        If WinExists("QQ用户登录") Then
                Run($qqpath & "qq.exe"" /START QQUIN:" & $qqhm & " PWDHASH:" & Str2QQPwdHash($qqmm) & " /START:40")
                If WinWaitActive("请选择上网环境", '', 3) Then
                        ControlClick("请选择上网环境", '', "Button3")
                        ControlClick("请选择上网环境", '', "")
                EndIf
        Else
                Run($qqpath & "\bin\QQ.exe")
                WinWait("QQ2009")
                WinWaitActive("QQ2009")
                $XY = WinGetPos("QQ2009")
                MouseClick("left", $XY + 215, $XY + 123)
                Send($qqhm, 1)
                MouseClick("left", $XY + 230, $XY + 154)
                Send("{BS 18}")
                Send($qqmm, 1)
                MouseClick("left", $XY + 230, $XY + 154)
                Send("{enter}")
        EndIf
Next


;****************读取桌面快捷方式*******************ControlSend ( "QQ2009", 31928640, $qqhm [, 1] )

Func findqq($path)
        $FileList = _FileListToArray($path, "*.lnk", 1)
        If @error = 1 Then Return "err"
        For $i = 1 To UBound($FileList) - 1
                FileCopy($path & "\" & $FileList[$i], @TempDir & "\~qq.lnk")
                $link = FileGetShortcut(@TempDir & "\~qq.lnk")
                If @error Then Return "err"
                If StringInStr($link, "qq.exe") Then Return $link
                FileDelete(@TempDir & "\~qq.lnk")
        Next
        Return "err"
EndFunc   ;==>findqq


以上这段代码没错啊可是就是加密的时候RC4加密错误了    用相同的方法解密后是乱码啊

有谁知道是出了什么问题啊

急等回复

谢谢

pwover 发表于 2009-9-17 19:13:17

自己顶   

那位大哥帮帮忙啊

我也不知道 哪里错了   怎么加密会错误啊

pwover 发表于 2009-9-17 19:27:20

这个加密错误   如我要把123456加密可是这个加密后成了1832F9D6B85602E3B4882038
解密后是乱码    )?'H?雒鈨藘献甬ⴒ甬Ѵ


而正确的RC4加密123456后是18FA48177BE5C220743DE9F8      



高手帮帮我啊
我真的 的 不知道哪里错了
能力有限不知道   
高手   指点下吧

pwover 发表于 2009-9-17 21:25:37

我还是没搞明白怎么我用_StringEncrypt这个函数 加密的时候出现乱码

我现在换了个加密函数一切正常了   


那位高手可以解释下吗   _StringEncrypt这个函数我用错了吗

sunafter 发表于 2009-9-17 21:44:16

貌似不能用来着,用别的吧

kn007 发表于 2009-9-17 22:08:35

http://www.autoitx.com/forum.php?mod=viewthread&tid=9575&page=1&fromuid=7644076#pid86606

换个udf,不要#Include <String.au3>

kn007 发表于 2009-9-17 22:10:23

_StringEncrypt
--------------------------------------------------------------------------------

一个基于 RC4 字符串加密的函数.


#Include <String.au3>
_StringEncrypt($i_Encrypt, $s_EncryptText, $s_EncryptPassword[, $i_EncryptLevel = 1])




参数

$i_Encrypt 1 为加密, 0 为解密.
$s_EncryptText 要加密/解密的文本.
$s_EncryptPassword 加密/解密使用的密码.
$i_EncryptLevel [可选参数]加密解密等级. 默认(Default) = 1



返回值

成功 返回加密/解密后的字符串.
失败 返回空白字符串并设置 @error = 1



注意/说明

警告: 这个函数会随着加密等级的提高,返回的字符串长度越长!



嘿嘿,多搜索吧

pwover 发表于 2009-9-18 11:56:41

谢谢了:face (37):

jevonleen 发表于 2009-11-10 16:39:05

我解密的时候是问号:face (30):
页: [1]
查看完整版本: 关于_StringEncrypt加密问????很急!!