Что нового

Кодировка в _Crypt_EncryptData

winkot

Новичок
Сообщения
169
Репутация
0
_Crypt_EncryptData возвращает данные в бинарном виде. А в какой кодировке они будут после BynaryToString?
 

AIG

Новичок
Сообщения
7
Репутация
2
Последнее редактирование:
Автор
W

winkot

Новичок
Сообщения
169
Репутация
0
Дело в том, что при открытии полученного текста в различных текстовых редакторах текст выглядит по разному. Учитывая, что он был получен путем шифрования то там одни кракозяблы, но вот отображаются они по разному.
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
в какой кодировке они будут после BynaryToString
Данные, зашифрованные функцией _Crypt_EncryptData, должны быть расшифрованы функцией _Crypt_DecryptData, а не BynaryToString.

при открытии полученного текста в различных текстовых редакторах текст выглядит по разному
Данные - бинарные. Текстовый редактор отображает бинарные данные, как умеет. Это то же самое, что открыть в текстовом редакторе фото или видео.
 
Автор
W

winkot

Новичок
Сообщения
169
Репутация
0
должны быть расшифрованы функцией _Crypt_DecryptData, а не BynaryToString.
Но как пишут в Справке "Расшифрованные данные всегда возвращаются в виде бинарных данных" Как же перевести их в текстовый вид?
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
Как же перевести их в текстовый вид?
Если текст, то в ANSI (flag = 1, по умолчанию)
Код:
#include <Crypt.au3>

$str = "проверка"
$dEncrypted = _Crypt_EncryptData($str, "password", $CALG_RC4)
ConsoleWrite("Enc : " & $dEncrypted & @CRLF)
$dDecrypted = _Crypt_DecryptData($dEncrypted, "password", $CALG_RC4)
ConsoleWrite("Dec : " & $dDecrypted & @CRLF)
Dim $code[] = ["","ansi","utf16le","utf16be","utf8"]
For $i = 1 To 4
  $txt = $code[$i] & " : " & BinaryToString($dDecrypted, $i)
  ConsoleWrite($txt & @CRLF) ; зависит от кодировки консоли SciTE
  MsgBox(0, "", $txt)
Next
 
Верх