basc 发表于 2018-12-29 20:11:33

【已解决】_Crypt_EncryptData加密解密和结果复制到内存不同。测试了很多,没找....

本帖最后由 basc 于 2018-12-30 11:24 编辑


#include <Crypt.au3>
Global $key = "basc" ;;加密码
Global $str = "192.168.0.162"
_Crypt_Startup()
$hKey = _Crypt_DeriveKey($key, $CALG_AES_256)
$s = _Crypt_EncryptData($str, $hKey, $CALG_USERKEY)
ConsoleWrite("Encrypted: " & $s & @CRLF)
MsgBox(4096,"", $s)

$str = _Crypt_DecryptData($s, $hKey, $CALG_USERKEY)
$213 = BinaryToString($str)
MsgBox(4096," ", $213)


这加密的结果和我以下复制到内存的加密的结果不同


#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <String.au3>
#include <Crypt.au3>
#include <Clipboard.au3>
#include <GuiMenu.au3>
#Region ### START Koda GUI section ### Form=C:\Users\basc\Desktop\gui.kxf
$Form1 = GUICreate("Form1", 394, 172, 261, 318)
$Input1 = GUICtrlCreateInput("输入需要加密的内容", 32, 16, 169, 21)
$Button1 = GUICtrlCreateButton("加密", 208, 16, 75, 25)

GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
      $nMsg = GUIGetMsg()
      Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
Case $Button1
                        Global $str = GUICtrlRead($Input1)
                        MsgBox(4096,"",$str)
                        Global $key = "basc" ;;加密码
_Crypt_Startup()
$hKey = _Crypt_DeriveKey($key, $CALG_AES_256)
$s = _Crypt_EncryptData($str, $hKey, $CALG_USERKEY)
                        _ClipBoard_SetData($s)
                        MsgBox(4096," ",$s)
      EndSwitch
WEnd

chzj589 发表于 2018-12-29 20:39:44

是那里不同,看不出

basc 发表于 2018-12-30 07:26:45

chzj589 发表于 2018-12-29 20:39
是那里不同,看不出

msgbox 出来的是0xC6A3E52CB06CB811A52B094DAB80D775
复制的是0xC6A3E52CB06CB8

chzj589 发表于 2018-12-30 09:00:33

basc 发表于 2018-12-30 07:26
msgbox 出来的是0xC6A3E52CB06CB811A52B094DAB80D775
复制的是0xC6A3E52CB06CB8

Global $str = "192.168.0.162"
Global $str = GUICtrlRead($Input1)="输入需要加密的内容"
输入不一样,输出当然不一样

basc 发表于 2018-12-30 11:22:49

chzj589 发表于 2018-12-30 09:00
Global $str = "192.168.0.162"
Global $str = GUICtrlRead($Input1)="输入需要加密的内容"
输入不一样 ...

Global $str = GUICtrlRead($Input1)="192.168.0.162"
结果是一样的,一样不同,问题不是出在加密上,而是复制到内存上。已经解决了

chzj589 发表于 2018-12-30 12:00:12

basc 发表于 2018-12-30 11:22
Global $str = GUICtrlRead($Input1)="192.168.0.162"
结果是一样的,一样不同,问题不是出在加密上,而 ...

解决就好。加密后能返回原文吗?

basc 发表于 2018-12-30 12:05:27

chzj589 发表于 2018-12-30 12:00
解决就好。加密后能返回原文吗?

可以的,加密解密都可以,问题是在粘贴到内存出错了

lpxx 发表于 2018-12-30 17:27:35

basc 发表于 2018-12-30 07:26
msgbox 出来的是0xC6A3E52CB06CB811A52B094DAB80D775
复制的是0xC6A3E52CB06CB8

ClipPut($s)
页: [1]
查看完整版本: 【已解决】_Crypt_EncryptData加密解密和结果复制到内存不同。测试了很多,没找....