Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.08.2013, 03:03   #1
Greedy_Fly
Новичок
Джуниор
 
Регистрация: 19.09.2009
Сообщений: 2
По умолчанию использование DCPCrypt2

Доброй ночи!!!

Код:
program Test;

uses
  Windows, SysUtils, DCPserpent;


var
Data, Res: string;
key: array[0..15] of Byte = ($C1, $FD, $D3, $D2, $A9, $B4, $87, $94,
                            $69, $71, $4B, $57, $2D, $3C, $0F, $1E);
TSerpent: TDCP_serpent;
begin
Data:='qwerty';
with TSerpent.Create(nil) do
begin
Init(Key, SizeOf(Key) * 8, nil);
SetLength(Res, Length(Data));
Encrypt(Data[1], Res[1], Length(Data));
Burn; 
Free; 
end;
end.
Что я делаю неправильно? хочу использовать свой ключ ... программа вылетает и всё!
Greedy_Fly вне форума Ответить с цитированием
Старый 08.08.2013, 04:34   #2
Larboss
Недо
Участник клуба
 
Регистрация: 11.08.2011
Сообщений: 1,394
По умолчанию

Доброй.

Давайте начнем с того, что это форум программистов, а не телепатов. Поэтому здесь нужна конкретика. Что вылетает, при каких услових, ошибка какая, что ожидалось получить?

По коду: подозрительно выглядит вызов Encrypt, вернее переданные в него параметры. Шифруете 1 символ из Data, а 3й параметр - указываете размерность всей строки Data. Не знаю, может быть так и должно быть...
С помощью программирования можно разбогатеть и изменить мир к лучшему (с) Бьерн Страуструп

Последний раз редактировалось Larboss; 08.08.2013 в 04:37.
Larboss вне форума Ответить с цитированием
Старый 08.08.2013, 06:31   #3
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

Обычная ошибка:
Код:
TSerpent: TDCP_serpent;
begin
Data:='qwerty';
with TSerpent.Create(nil) do
Приглядитесь - и зарубите себе, где класс, а где объект (экземпляр класса)
и что конструктор вызывается через класс, а не объект.
Да и отладкой данный "вылет" вычисляется за секунды, приучайтесь пользоваться.

Судя по исходнику на гитхабе для получения рабочего варианта надо лишь повторить (подогнать под себя) функцию
Код:
class function TDCP_serpent.SelfTest: boolean;
Larboss, это не один символ передаётся, а указатель на начало блока - типичная в дельфи операция (взятие первого символа - он является указателем на начало блока памяти) для работы со строками как с областями памяти.

Последний раз редактировалось phomm; 08.08.2013 в 06:35.
phomm вне форума Ответить с цитированием
Старый 08.08.2013, 22:03   #4
Greedy_Fly
Новичок
Джуниор
 
Регистрация: 19.09.2009
Сообщений: 2
По умолчанию

Спасибо! вот я чёрт слепой!)
Greedy_Fly вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Использование Uses kettanaito Общие вопросы Delphi 24 03.06.2012 21:03
Использование If Macklay PHP 4 14.05.2012 20:03
Использование БД glazik БД в Delphi 13 22.02.2012 09:14
Использование (...) в с++ Byurrer Общие вопросы C/C++ 12 06.04.2011 23:04
Использование while и while do prikolist Общие вопросы C/C++ 20 06.04.2009 18:40