Форум: "Начинающим";
Текущий архив: 2012.01.29;
Скачать: [xml.tar.bz2];
ВнизНе правильно работает код после перехода на Delphi XE2 Найти похожие ветки
← →
Alez © (2011-10-21 17:35) [0]Не работает симметричное шифрование
function Encrypt(const InString:WideString; StartKey,MultKey,AddKey:Integer): WideString;
var
i: Byte;
begin
Result:="";
for i:=1 to Length(InString) do
begin
Result:=Result+Char(Byte(InString[i]) xor (StartKey shr 8));
StartKey:=(Byte(Result[i])+StartKey)*MultKey+AddKey;
end;
end;
В Delphi 2007 всё работало хорошо, а в XE расшифровывает не те значния.
Я так понял это из-за кодировки которую использую новые Делфи (UTF16?). Как изменить этот код для работы на другой кодировке, опыт программирования не большой...
Спасибо.
← →
DVM © (2011-10-21 17:46) [1]В Delphi 2007 тип Char - 1 байт, это AnsiChar
В Delphi XE тип Char - 2 байта.
Если тебе надо оставить все как было, замени Char на AnsiChar, хотя на мой взгляд оно и раньше было не очень.
← →
DVM © (2011-10-21 17:48) [2]
> Я так понял это из-за кодировки которую использую новые
> Делфи (UTF16?)
Миграция проектов Delphi для
поддержки Unicode в новых версиях:
практические рекомендации
Кэри Дженсен (Cary Jensen), Jensen Data Systems, Inc.
Декабрь 2009 г.
http://www.delphi2009.ru/Unicode_Delphi-RUS.pdf
← →
Anatoly Podgoretsky © (2011-10-21 18:40) [3]> Alez (21.10.2011 17:35:00) [0]
i: Byte; --> i: Integer;
← →
Плохиш © (2011-10-21 20:23) [4]
> Anatoly Podgoretsky © (21.10.11 18:40) [3]
> > Alez (21.10.2011 17:35:00) [0]
>
> i: Byte; --> i: Integer;
Фигню предлагаешь, ему и раньше весь символ не нужен был.
← →
Anatoly Podgoretsky © (2011-10-21 20:32) [5]Не фигню, далее 255 байта он не продвинется.
Это же мой портированый код, и у меня была эта ошибка при переходе с Д1 на Д2
← →
Anatoly Podgoretsky © (2011-10-21 20:34) [6]А фигню с символом он сам добавил. Ну сам и виноват.
← →
Alez © (2011-10-21 23:59) [7]Спасибо всем большое, помогла замена всех чаров на ансичары и всех стрингов на ансистринги.
Не совсем что я хотел, но пока не понимаю как этот код работает со смещением байтов.
← →
Германн © (2011-10-22 01:53) [8]
> Спасибо всем большое, помогла замена всех чаров на ансичары
> и всех стрингов на ансистринги.
> Не совсем что я хотел, но пока не понимаю как этот код работает
> со смещением байтов.
>
Не со "смещением", но с размером.
← →
Alez © (2011-10-22 16:45) [9]
> Не со "смещением", но с размером.
Здесь я имею ввиду Shr, вроде смещение вправо, я не понимаю как это работает.
Может быть там просто заместо 8, поставить что то вроде 16 или 32 для смещения на большее количество бит, но так увы не работает
← →
MBo © (2011-10-22 20:25) [10]>Здесь я имею ввиду Shr, вроде смещение вправо, я не понимаю как это работает
Здесь в формировании результата используется второй байт StartKey
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2012.01.29;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.005 c