| ||||
| ||||
При шифровании возникла ситуевина: Шифрую строку: //тело BufferLen := Length(Text); for i := 1 to BufferLen do Buffer[i-1] := ord(Text[i]); if not CPEncrypt(Provider, SessionKey, 0, True, 0, @Buffer, @BufferLen, 512) then raise Exception.Create(’Шифрование тела’, getLastError); WriteBuffer(BufferLen, 4); WriteBuffer(Buffer, BufferLen); А после расшифровки: ReadBuffer(BufferLen, 4); ReadBuffer(Buffer, BufferLen); if not CPDecrypt(Provider, SessionKey, 0, True, 0, @Buffer, @BufferLen) then raise Exception.Create SetLength(S, BufferLen); for i := 1 to BufferLen do S[i] := chr(Buffer[i-1]); После этого обнаруживается, что первые 8 байт строки испорчены. В чем непонимание? | ||||
Ответы: | ||||
| ||||
А с начальным вектором инициализации KP_IV не забыли поработать? :-) Вот по этому и идет рассогласование... | ||||
| ||||
Точно. Так и есть. Спасибо. | ||||