Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2012.01.29;
Скачать: CL | DM;

Вниз

Не правильно работает код после перехода на 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.009 c
15-1318427502
Бездомный
2011-10-12 17:51
2012.01.29
Юморок


1-1282631144
Avil
2010-08-24 10:25
2012.01.29
Разница кодировок при копировании и вставке


1-1282292479
TComponent
2010-08-20 12:21
2012.01.29
Компонент для сетевой структуры


15-1317835426
Empleado
2011-10-05 21:23
2012.01.29
Project Management Software


2-1318784462
Тима12
2011-10-16 21:01
2012.01.29
Точки вершин в tchart