Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
1-1282232239
DrAndriy
2010-08-19 19:37
2012.01.29
Проблема с модулями с модулями DesignIntf и DesignEditors. Где на


8-1222045702
Dispoz
2008-09-22 05:08
2012.01.29
Попытка загрузить картинку


4-1254333344
EPaul
2009-09-30 21:55
2012.01.29
Как запустить программу пользователем SYSTEM


2-1319248809
inspiring
2011-10-22 06:00
2012.01.29
В TreeView из TTable.


2-1319357230
pushok
2011-10-23 12:07
2012.01.29
Проблема с реестром в windows 7





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский