![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 21.12.2010
Сообщений: 91
|
![]()
Здравствуйте на просторах интернета нашел код Шифрования Вернама
http://zetblog.ru/programming/200812...0/#comment-924 только он не работает Incompatible types: 'String' and 'Integer' ругается на строку: shStr[i]:=oStr[i] xor key[i]; пишу так то же самое: shstr:=((StrToInt(ostr[i])) xor (StrToInt(key[i]))); сам шифр Код:
|
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 08.06.2011
Сообщений: 693
|
![]()
Делай Memo или TStrings и обрабатывай построчно. А лучше засунуть это во временный файл и обработать его побайтово.
|
![]() |
![]() |
![]() |
#3 |
Участник клуба
Регистрация: 09.11.2007
Сообщений: 1,762
|
![]()
Сделай так
Ord(oStr[i]) xor Ord(key[i]) |
![]() |
![]() |
![]() |
#4 | |
Пользователь
Регистрация: 21.12.2010
Сообщений: 91
|
![]()
всё равно не работает
Цитата:
|
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 21.12.2010
Сообщений: 91
|
![]()
Люди помогите !!!
![]() ![]() |
![]() |
![]() |
![]() |
#6 |
Delphi/C++/C#
Участник клуба
Регистрация: 29.10.2006
Сообщений: 1,972
|
![]()
Невнимательность.
Замени Код:
Код:
мы используем function Ord(X: Ordinal): Byte; (на выходе получаем 8 бит) Char с недавних пор равен WideChar (16 бит), String с тех же пор UnicodeString (каждый символ = 2 байта = 16 бит). Таким образом при входе мы шифруем каждый символ = 16 бит и получаем на промежуточном этапе 8 бит (старший байт машет нам ручкой и уходит в небытие), затем функция Char опять раздувает его до 16 бит (тип на выходе WideChar). Вывод: строками выше нельзя кодировать текст в юникоде. Последний раз редактировалось zetrix; 04.06.2013 в 17:37. |
![]() |
![]() |
![]() |
#7 | |
Пользователь
Регистрация: 21.12.2010
Сообщений: 91
|
![]() Цитата:
Пишет |
|
![]() |
![]() |
![]() |
#8 |
Delphi/C++/C#
Участник клуба
Регистрация: 29.10.2006
Сообщений: 1,972
|
![]()
Ko$, я предупреждал, IDE вас предупреждает (правда немного в другом: "можете выбежать за пределы строки. Будь осторожен!").
Длину строки shstr необходимо задать равной строке oStr (а то писать действительно будем в никуда). После этого и предупреждение должно исчезнуть. Последний раз редактировалось zetrix; 04.06.2013 в 18:59. |
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 21.12.2010
Сообщений: 91
|
![]() |
![]() |
![]() |
![]() |
#10 |
Delphi/C++/C#
Участник клуба
Регистрация: 29.10.2006
Сообщений: 1,972
|
![]()
Размер у shstr какой? Если в начале шифрования у вас написано shstr := ''; то естественно писать будет некуда.Первое же обращение shstr[i] приведёт к ошибке.
Исправленный код процедуры шифрования опубликуйте тут. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Шифр | SYSSI | Безопасность, Шифрование | 4 | 13.05.2011 19:00 |
Шифр? | KoBRaAndrey | Работа с сетью в Delphi | 0 | 12.12.2009 16:16 |
Шифр | Progs1024 | Паскаль, Turbo Pascal, PascalABC.NET | 9 | 12.10.2009 19:51 |
Шифр | Razora | Свободное общение | 10 | 26.06.2007 15:52 |