06.05.2003 17:38:07Запорченные данные Ответов: 2
Ильшат Абшарипов
При шифровании возникла ситуевина:
Шифрую строку:
//тело
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 байт строки испорчены. В чем непонимание?
 
Ответы:
06.05.2003 18:27:09Uri
А с начальным вектором инициализации KP_IV не забыли поработать? :-)
Вот по этому и идет рассогласование...
06.05.2003 18:38:38Ильшат Абшарипов
Точно. Так и есть. Спасибо.