Что нового

Кодировка XOR+Base64 и декодировка обратно не работают совместно

beaver

Новичок
Сообщения
58
Репутация
2
Всем привет.
Идея простая - надо сначала закодить строку: сначала XOR, а поверх Base64, а потом в обратном порядке декодировать.
По отдельности XOR encode/decode и Base64 encode/decode работают, а вместе не хотят. Никак не могу понять почему. Собственно ХЕЛП! Почему не работает? Код прилагаю ниже.
Код:
#include "C:\svn\qa\lib\_XOR.au3"
#Include <Encoding.au3>													

;Это работает
$xor = _Xor_Encode("123456", 1212)
$unxor = _Xor_Decode($xor, 1212)
MsgBox(64, "", "Encoded: "& $xor &@CRLF&@CRLF&"Decoded: "& $unxor)

;Это работает
$base64_encode = _Encoding_Base64Encode("123456")
$base64_decode = _Encoding_Base64Decode($base64_encode)
MsgBox(64, "", "Encoded: "& $base64_encode &@CRLF&@CRLF&"Decoded: "& $base64_decode)

;А это не работает!!!
$xor = _Xor_Encode("123456", 1212)
$base64_encode = _Encoding_Base64Encode($xor)
$base64_decode = _Encoding_Base64Decode($base64_encode)
$unxor = _Xor_Decode($base64_decode, 1212)
MsgBox(64, "", "Encoded: "& $xor &@CRLF&@CRLF&"Encoded: "& $base64_encode &@CRLF&@CRLF&"Decoded: "& $base64_decode &@CRLF&@CRLF&"Decoded: "& $unxor)
 

dwerf

Использует ArchLinux
Сообщения
478
Репутация
218
Не вижу...

Код:
#include "C:\svn\qa\lib\_XOR.au3"
#Include <Encoding.au3>
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
думается мне, что это из-за нулевого байта. где-то строки откусываются.
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 711

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 319
beaver
Используя эти функции Yashied`a, у меня так работает:
Код:
#include "_XOR.au3"

For $i = 1 To 15 ;с 16 начинают появляться ошибки
	$xor = _Xor_Encode('Здравствуй Вася', $i)
	$base64_encode = _Base64_Encode($xor)
	$base64_decode = _Base64_Decode($base64_encode)
	$unxor = _Xor_Decode($base64_decode, $i)
	MsgBox(64, $i, "Encoded: " & $xor & @CRLF & @CRLF & "Encoded: " & _
	$base64_encode & @CRLF & @CRLF & "Decoded: " _
	& $base64_decode & @CRLF & @CRLF & "Decoded: " & $unxor, 2)
Next
ИМХО, _Xor_Encode() - _Xor_Decode() не надежны. Если Вам надо что-то закодировать(раскодировать), используйте Штатные способы.
 
Верх