Trong Posted March 5, 2021 Posted March 5, 2021 s expandcollapse popup#include <Crypt.au3> ;_Crypt_Startup() ; To optimize performance start the crypt library. ;EG1------------------------------------------------------------------------------------ Global $sData2Encrypt = 'ĐÀO VĂN TRONG', $iPasswd_1 = 'Việt Nam', $iAlgID_1 = 'RC4', $iPasswd_2 = 'Muôn Năm', $iAlgID_2 = '3DES' ConsoleWrite('+ EG1 - Data input: ' & $sData2Encrypt & @CRLF) Global $bDataEncrypted = _Encrypt_Data($sData2Encrypt) ConsoleWrite('+ EG1 - Data Encrypted (E:' & @error & '): ' & $bDataEncrypted & @CRLF) Global $sDataDecrypted = _Decrypt_Data($bDataEncrypted) ConsoleWrite('+ EG1 - Data Decrypted (E:' & @error & '): ' & $sDataDecrypted & @CRLF & @CRLF) ;EG2------------------------------------------------------------------------------------ Global $sData2Encrypt = 'ĐÀO VĂN TRONG love AUTOIT', $iPasswd_1 = 'Việt Nam', $iAlgID_1 = 'RC4', $iPasswd_2 = 'Muôn Năm', $iAlgID_2 = '3DES' ConsoleWrite('+ EG2 - Data input: ' & $sData2Encrypt & @CRLF) ConsoleWrite('- EG2 - Passwd 1: ' & $iPasswd_1 & ' | Algorithm 1: ' & $iAlgID_1 & @CRLF) ConsoleWrite('- EG2 - Passwd 2: ' & $iPasswd_2 & ' | Algorithm 2: ' & $iAlgID_2 & @CRLF) Global $bDataEncrypted = _Encrypt_Data($sData2Encrypt, $iPasswd_1, $iAlgID_1, $iPasswd_2, $iAlgID_2) ConsoleWrite('- EG2 - Data Encrypted (E:' & @error & '): ' & $bDataEncrypted & @CRLF) Global $sDataDecrypted = _Decrypt_Data($bDataEncrypted, $iPasswd_1, $iAlgID_1, $iPasswd_2, $iAlgID_2) ConsoleWrite('- EG2 - Data Decrypted (E:' & @error & '): ' & $sDataDecrypted & @CRLF) Func _Encrypt_Data($sData2Encrypt, $iPasswd_1 = 'TRONG.LIVE', $iAlgID_1 = '3DES', $iPasswd_2 = 'TRONG.LIVE', $iAlgID_2 = 'RC4') Local $bDataEncrypted = StringToBinary($sData2Encrypt, 4) Local $ePasswd_1 = StringToBinary($iPasswd_1, 4), $ePasswd_2 = StringToBinary($iPasswd_2, 4) Local $rDataEncrypted = _Crypt_EncryptData($bDataEncrypted, $ePasswd_1, _GetAlgorithm($iAlgID_1)) If @error Then Return SetError(1, 0, "") $bDataEncrypted = _Crypt_EncryptData($rDataEncrypted, $ePasswd_2, _GetAlgorithm($iAlgID_2)) If @error Then Return SetError(2, 0, "") $rDataEncrypted = String($bDataEncrypted) $bDataEncrypted = StringLeft($rDataEncrypted, 2) == '0x' ? StringTrimLeft($rDataEncrypted, 2) : $rDataEncrypted Return $bDataEncrypted EndFunc ;==>_Encrypt_Data Func _Decrypt_Data($bDataEncrypted, $iPasswd_1 = 'TRONG.LIVE', $iAlgID_1 = '3DES', $iPasswd_2 = 'TRONG.LIVE', $iAlgID_2 = 'RC4') Local $rDataEncrypted = Binary(StringLeft($bDataEncrypted, 2) == '0x' ? $bDataEncrypted : '0x' & $bDataEncrypted) Local $ePasswd_1 = StringToBinary($iPasswd_1, 4), $ePasswd_2 = StringToBinary($iPasswd_2, 4) $bDataEncrypted = _Crypt_DecryptData($rDataEncrypted, $ePasswd_2, _GetAlgorithm($iAlgID_2)) If @error Then Return SetError(1, 0, "") $rDataEncrypted = _Crypt_DecryptData($bDataEncrypted, $ePasswd_1, _GetAlgorithm($iAlgID_1)) If @error Then Return SetError(2, 0, "") $bDataEncrypted = BinaryToString($rDataEncrypted, 4) Return $bDataEncrypted EndFunc ;==>_Decrypt_Data Func _GetAlgorithm($iAlgID = '') Local $sAlgID Switch $iAlgID Case 'AES-128', $CALG_AES_128 $sAlgID = $CALG_AES_128 Case 'AES-192', $CALG_AES_192 $sAlgID = $CALG_AES_192 Case 'AES-256', $CALG_AES_256 $sAlgID = $CALG_AES_256 Case 'DES', $CALG_DES $sAlgID = $CALG_DES Case '3DES', $CALG_3DES $sAlgID = $CALG_3DES Case 'RC4', $CALG_RC4 $sAlgID = $CALG_RC4 Case Else $sAlgID = $CALG_AES_256 EndSwitch Return $sAlgID EndFunc ;==>_GetAlgorithm Regards,
Trong Posted March 5, 2021 Author Posted March 5, 2021 Version 2 with compress: expandcollapse popup#include <Crypt.au3> ;_Crypt_Startup() ; To optimize performance start the crypt library. ;#-EG-1---------------------------------------------------------------------------------------------- Global $sData2Encrypt = 'ÐÀO VĂN TRONG', $iPasswd_1 = 'Việt Nam', $iAlgID_1 = 'AES-256', $iPasswd_2 = 'Muôn Năm', $iAlgID_2 = 'AES-128' ConsoleWrite('+ EG1 - Data input: ' & $sData2Encrypt & @CRLF) Global $bDataEncrypted = _Data_Encrypt($sData2Encrypt) ConsoleWrite('+ EG1 - Data Encrypted (E:' & @error & '): ' & $bDataEncrypted & @CRLF) Global $sDataDecrypted = _Data_Decrypt($bDataEncrypted) ConsoleWrite('+ EG1 - Data Decrypted (E:' & @error & '): ' & $sDataDecrypted & @CRLF & @CRLF) ;#-EG-2---------------------------------------------------------------------------------------------- Global $sData2Encrypt = 'ÐÀO VĂN TRONG', $iPasswd_1 = 'Việt Nam', $iAlgID_1 = '3DS', $iPasswd_2 = 'Muôn Năm', $iAlgID_2 = 'RC4' ConsoleWrite('+ EG2 - Data input: ' & $sData2Encrypt & @CRLF) ConsoleWrite('- EG2 - Passwd 1: ' & $iPasswd_1 & ' | Algorithm 1: ' & $iAlgID_1 & @CRLF) ConsoleWrite('- EG2 - Passwd 2: ' & $iPasswd_2 & ' | Algorithm 2: ' & $iAlgID_2 & @CRLF) Global $bDataEncrypted = _Data_Encrypt($sData2Encrypt, $iPasswd_1, $iAlgID_1, $iPasswd_2, $iAlgID_2) ConsoleWrite('- EG2 - Data Encrypted (E:' & @error & '): ' & $bDataEncrypted & @CRLF) Global $sDataDecrypted = _Data_Decrypt($bDataEncrypted, $iPasswd_1, $iAlgID_1, $iPasswd_2, $iAlgID_2) ConsoleWrite('- EG2 - Data Decrypted (E:' & @error & '): ' & $sDataDecrypted & @CRLF) Func _Data_Encrypt($sData2Encrypt, $iPasswd_1 = 'TRONG.LIVE', $iAlgID_1 = 'AES-256', $iPasswd_2 = 'TRONG.LIVE', $iAlgID_2 = 'AES-128') Local $rDataEncrypted = StringToBinary($sData2Encrypt, 4) Local $bDataEncrypted = _Data_Compress($rDataEncrypted, 258) If @error Then Return SetError(1, 0, "") Local $ePasswd_1 = StringToBinary($iPasswd_1, 4), $ePasswd_2 = StringToBinary($iPasswd_2, 4) $rDataEncrypted = _Crypt_EncryptData($bDataEncrypted, $ePasswd_1, _Data_GetAlgorithm($iAlgID_1)) If @error Then Return SetError(2, 0, "") $bDataEncrypted = _Crypt_EncryptData($rDataEncrypted, $ePasswd_2, _Data_GetAlgorithm($iAlgID_2)) If @error Then Return SetError(3, 0, "") $rDataEncrypted = String($bDataEncrypted) $bDataEncrypted = StringLeft($rDataEncrypted, 2) == '0x' ? StringTrimLeft($rDataEncrypted, 2) : $rDataEncrypted Return $bDataEncrypted EndFunc ;==>_Data_Encrypt by Dao Van Trong - TRONG.LIVE Func _Data_Decrypt($bDataEncrypted, $iPasswd_1 = 'TRONG.LIVE', $iAlgID_1 = 'AES-256', $iPasswd_2 = 'TRONG.LIVE', $iAlgID_2 = 'AES-128') Local $rDataEncrypted = StringLeft($bDataEncrypted, 2) == '0x' ? $bDataEncrypted : '0x' & $bDataEncrypted Local $ePasswd_1 = StringToBinary($iPasswd_1, 4), $ePasswd_2 = StringToBinary($iPasswd_2, 4) $bDataEncrypted = _Crypt_DecryptData($rDataEncrypted, $ePasswd_2, _Data_GetAlgorithm($iAlgID_2)) If @error Then Return SetError(3, 0, "") $rDataEncrypted = _Crypt_DecryptData($bDataEncrypted, $ePasswd_1, _Data_GetAlgorithm($iAlgID_1)) If @error Then Return SetError(2, 0, "") $bDataEncrypted = _Data_Decompress($rDataEncrypted) If @error Then Return SetError(1, 0, "") $rDataEncrypted = BinaryToString($bDataEncrypted, 4) Return $rDataEncrypted EndFunc ;==>_Data_Decrypt by Dao Van Trong - TRONG.LIVE Func _Data_Decompress($bBinary) $bBinary = Binary($bBinary) Local $tInput = DllStructCreate("byte[" & BinaryLen($bBinary) & "]") DllStructSetData($tInput, 1, $bBinary) Local $tBuffer = DllStructCreate("byte[" & 16 * DllStructGetSize($tInput) & "]") Local $a_Call = DllCall("ntdll.dll", "int", "RtlDecompressBuffer", "ushort", 2, "ptr", DllStructGetPtr($tBuffer), "dword", DllStructGetSize($tBuffer), "ptr", DllStructGetPtr($tInput), "dword", DllStructGetSize($tInput), "dword*", 0) If @error Or $a_Call[0] Then Return SetError(1, 0, "") EndIf Local $tOutput = DllStructCreate("byte[" & $a_Call[6] & "]", DllStructGetPtr($tBuffer)) Return SetError(0, 0, DllStructGetData($tOutput, 1)) EndFunc ;==>_Data_Decompress by trancexx Func _Data_Compress($vInput, $iCompressionFormatAndEngine = 258) If Not ($iCompressionFormatAndEngine = 258) Then $iCompressionFormatAndEngine = 2 EndIf Local $bBinary = Binary($vInput) Local $tInput = DllStructCreate("byte[" & BinaryLen($bBinary) & "]") DllStructSetData($tInput, 1, $bBinary) Local $a_Call = DllCall("ntdll.dll", "int", "RtlGetCompressionWorkSpaceSize", "ushort", $iCompressionFormatAndEngine, "dword*", 0, "dword*", 0) If @error Or $a_Call[0] Then Return SetError(1, 0, "") EndIf Local $tWorkSpace = DllStructCreate("byte[" & $a_Call[2] & "]") Local $tBuffer = DllStructCreate("byte[" & 16 * DllStructGetSize($tInput) & "]") Local $a_Call = DllCall("ntdll.dll", "int", "RtlCompressBuffer", "ushort", $iCompressionFormatAndEngine, "ptr", DllStructGetPtr($tInput), "dword", DllStructGetSize($tInput), "ptr", DllStructGetPtr($tBuffer), "dword", DllStructGetSize($tBuffer), "dword", 4096, "dword*", 0, "ptr", DllStructGetPtr($tWorkSpace)) If @error Or $a_Call[0] Then Return SetError(2, 0, "") EndIf Local $tOutput = DllStructCreate("byte[" & $a_Call[7] & "]", DllStructGetPtr($tBuffer)) Return SetError(0, 0, DllStructGetData($tOutput, 1)) EndFunc ;==>_Data_Compress by trancexx Func _Data_GetAlgorithm($iAlgID = '') Local $sAlgID Switch $iAlgID Case 'AES-128', $CALG_AES_128 $sAlgID = $CALG_AES_128 Case 'AES-192', $CALG_AES_192 $sAlgID = $CALG_AES_192 Case 'AES-256', $CALG_AES_256 $sAlgID = $CALG_AES_256 Case 'DES', $CALG_DES $sAlgID = $CALG_DES Case '3DES', $CALG_3DES $sAlgID = $CALG_3DES Case 'RC4', $CALG_RC4 $sAlgID = $CALG_RC4 Case Else $sAlgID = $CALG_AES_256 EndSwitch Return $sAlgID EndFunc ;==>_Data_GetAlgorithm Regards,
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now