Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с MD5 
:(
    Опции темы
nickelfire
Дата 28.1.2005, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 22.12.2004

Репутация: нет
Всего: нет



Я шифрую один и тот-же текст а Hash всё время разный. Why?
PM MAIL   Вверх
Akella
Дата 28.1.2005, 10:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



может каждый раз добавляется какой-нибудь левый символ?

Я тоже так шифрую. В смысле добавляю один символ при шифроании, получается как бы ключ.
PM MAIL   Вверх
nickelfire
Дата 28.1.2005, 11:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 22.12.2004

Репутация: нет
Всего: нет



Не хера не понял. Как нибудь по проще можно. smile
PM MAIL   Вверх
Akella
Дата 28.1.2005, 13:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Когда я шифрую код, то добавляю к нему символ (например, букву F). Эта буква и является ключем, даже не ключем, а просто примесью

Код

procedure TfmRegistration.FormCreate(Sender: TObject);
begin
Randomize;
i:=Random(65);
end;


Код

Function TfmRegistration.GenSymbol:String;
begin
Case i of
0: result:='A';
1: result:='B';
2: result:='C';
3: result:='D';
4: result:='E';
5: result:='F';
6: result:='G';
7: result:='H';
8: result:='I';
9: result:='J';
10: result:='K';
11: result:='L';
12: result:='M';
13: result:='N';
14: result:='O';
15: result:='P';
16: result:='Q';
17: result:='R';
18: result:='S';
19: result:='T';
20: result:='U';
21: result:='V';
22: result:='W';
23: result:='X';
24: result:='Y';
25: result:='Z';
26: result:='a';
27: result:='b';
28: result:='c';
29: result:='d';
30: result:='e';
31: result:='f';
32: result:='g';
33: result:='h';
34: result:='i';
35: result:='j';
36: result:='k';
37: result:='l';
38: result:='m';
39: result:='n';
40: result:='o';
41: result:='p';
43: result:='q';
44: result:='r';
45: result:='s';
46: result:='t';
47: result:='u';
48: result:='v';
49: result:='w';
50: result:='x';
51: result:='y';
52: result:='z';
53: result:='!';
54: result:='@';
55: result:='#';
56: result:='$';
57: result:='%';
58: result:='^';
59: result:='&';
60: result:='*';
61: result:='(';
62: result:=')';
63: result:='+';
64: result:='/';
end;//case
end;


Код

Function TfmRegistration.Gen(sString:String):String;
Var
 SerialNum : dword;
 sSerialNum : String;
 a, b : dword;
 Buffer  : array [0..255] of char;
begin//привязываемся к серийному номеру тома (НЖМД)
sSerialNum:=sString;
{берем серийник винчетстера и кодируем его в код типа ххх-ххх-ххх-ххх
заносим эти значения в верхние edit`ы}
if GetVolumeInformation('c:\', Buffer, SizeOf(Buffer), @SerialNum, a, b, nil, 0) then begin
sSerialNum:=IntToStr(SerialNum);
if Length(sSerialNum)>10 then
  sSerialNum:=Copy(sSerialNum,1,10)
else
  if Length(sSerialNum)<10 then
    sSerialNum:=Copy(sSerialNum+'0000000000',1,10);
//
Edit6.Text:=fmMain.Encode(Copy(sSerialNum,1,2)+GenSymbol);//добавляем любой символ
Edit7.Text:=fmMain.Encode(Copy(sSerialNum,3,2)+GenSymbol);
Edit8.Text:=fmMain.Encode(Copy(sSerialNum,5,2)+GenSymbol);
Edit9.Text:=fmMain.Encode(Copy(sSerialNum,7,2)+GenSymbol);
Edit10.Text:=fmMain.Encode(Copy(sSerialNum,9,2)+GenSymbol);
Edit11.Text:=fmMain.Encode(Copy(sSerialNum,11,2)+GenSymbol);
Edit12.Text:=fmMain.Encode(GenSymbol);
Result:=Edit6.Text+'-'+Edit7.Text+'-'+Edit8.Text+'-'+Edit9.Text+
       '-'+Edit10.Text+'-'+Edit11.Text+'-'+Edit12.Text+'-'+Edit15.Text;
end;//if GetVolumeInformation('c:\', Buffer, SizeOf(Buffer), @SerialNum, a, b, nil, 0) then begin
end;


Код

Procedure TfmRegistration.UnGe;
begin
//обрезаем последний символ, так можно делать не только с послешний символом.
  Edit1.Text:=Copy(fmMain.Decode(Edit6.Text,True),1,2);
  Edit2.Text:=Copy(fmMain.Decode(Edit7.Text,True),1,2);
  Edit3.Text:=Copy(fmMain.Decode(Edit8.Text,True),1,2);
  Edit4.Text:=Copy(fmMain.Decode(Edit9.Text,True),1,2);
  Edit5.Text:=Copy(fmMain.Decode(Edit10.Text,True),1,2);
  Edit13.Text:=Copy(fmMain.Decode(Edit11.Text,True),1,2);
  Edit14.Text:=Copy(fmMain.Decode(Edit12.Text,True),1,2);
end;


итак, получилось без всяких ключей, маленько перепутал smile

Это сообщение отредактировал(а) dsergey - 28.1.2005, 13:30
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0565 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.