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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Криптография 
:(
    Опции темы
RA
Дата 13.6.2002, 19:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

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



Люди, нужен маленький примерчик зашифровки и расшифровки строки, очень маленький и простой.

К примеру такого типа:

Procedure Crypt
begin
Crypt(edit1.text);
end;

Procedure DeCrypt
begin
DeCrypt(edit1.text);
end;
PM   Вверх
Song
Дата 13.6.2002, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Sysman.ru
***


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

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



Делаем например XOR плюс ещё что-то над кодом каждого символа в строке.


--------------------
Прежде чем сказать "Невозможно", подумай, прав ли ты
PM WWW ICQ   Вверх
RA
Дата 13.6.2002, 20:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

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



song а можно примерчик описанный выше, ато я с криптографией не знаком.
PM   Вверх
Vit
Дата 13.6.2002, 20:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

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



Мы это уже обсуждали. Вот в FAQ вынесены примеры кода, тебе надо только функцию перенести:

http://www.forum.vingrad.ru/cgi-bin....2;t=848


PS. To Radmin - я не смог ответить на твои сообщения - у тебя переполнен message box, и email ты тоже не указываешь, так что извини...


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
RA
Дата 13.6.2002, 20:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

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



Да с этим кодом всё понятно, ты мне его ещё присылал когда мы обсуждали READ WRITE он хорошь, но у меня случилась трабла и только сейчас я понял в чём баг

я писал
DoEncode(Edit1.text);
а он выдовал глупые ошибки (ламер);
============================
Он падлюка хочет чтоб я делал так

var
s:string;
begin
sl:=Edit1.text;
DoEncode(s);
Edit1.text:=s;



:thumbs-up  :hehe
PM   Вверх
Vit
Дата 13.6.2002, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

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



Так что переделать тебе его в функцию? Я так понимаю ты и сам это сделаешь


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
RA
Дата 13.6.2002, 21:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

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



Чёрт, Vit извини но это хоть и красивый но самый отстойный код, теперь мне ясно почему те твои способы записи через потоки не работали.

Код Криптовки кривой, можешь сам посмотреть. Блин такой код недостоин находится в факе.
PM   Вверх
Vit
Дата 13.6.2002, 23:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

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



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


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
RA
Дата 14.6.2002, 09:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

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



Да строки:
Вот например строка:

www.come.ru/source/blabla.text такая строка работает

а ткая строка
pop.mail.ru читается как pop.mai

ну и куча всяких других дибильных примеров, особенно не любит символы.
или последовательности.
PM   Вверх
TwoK
Дата 14.6.2002, 09:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Ну так переделай, добавь свой ©, fix-list, и положи обратно, а то как в троллейбусе "Лето на дворе, а он печку врубил, гад", а окна влом открыть...

Это я так... заметил... :)


--------------------
Говорят, что население в стране все меньше и меньше. А народу по утрам в метро почему-то все больше и больше...
PM MAIL   Вверх
RA
Дата 14.6.2002, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

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



Я нашёл новый способ но не могу довести его до ума.
Вот исходник маленькой програмки в *.dpr, как перевести это в нормальный
PAS.



Код

program Window;

uses Windows, Messages;

{$R *.RES}

var
wClass:   TWndClass;  // class struct for main window
hFont,                // handle of font
hInst,                // handle of program (hinstance)
Handle,               // handle of main window
hEncrypt,             // handle of encrypt button
hDecrypt,             // handle of decrypt button
hEdit,                // handle of main edit
hLabel,               // handle of password label
hPW:      HWND;       // handle of password edit
Msg:      TMSG;       // message struct
dEncrypt,
dDecrypt: Pointer;    // default button procedures

(*------------------------------------------------*)

// This lines everything up
procedure Resize;
var
RCT:TRect;
begin
 GetWindowRect(Handle,RCT);
 MoveWindow(hPW,230,5,RCT.Right-RCT.Left-245,24,True);
 MoveWindow(hEdit,5,34,RCT.Right-RCT.Left-20,RCT.Bottom-RCT.Top-66,True);
end;

(*------------------------------------------------*)

// This is to cleanup and stop the program
procedure ShutDown;
begin
 DeleteObject(hFont);
 UnRegisterClass('Sample Class',hInst);
 ExitProcess(hInst); //end program
end;

(*------------------------------------------------*)

// Decrypts the text in hEdit with the text in hPW
procedure Decrypt;
var
x,i,                // count variables
sText,sPW: Integer; // size of Text, PW
Text,PW:   PChar;   // buffer for Text, PW
begin
 sText:=GetWindowTextLength(hEdit)+1;
 sPW:=GetWindowTextLength(hPW)+1;
 GetMem(Text,sText);
 GetMem(PW,sPW);
 GetWindowText(hEdit,Text,sText);
 GetWindowText(hPW,PW,sPW);
 x:=0; // initialize count
 for i:=0 to sText-2 do
 begin
   Text[i]:=Chr(Ord(Text[i])-Ord(PW[x]));
   Inc(x);
   if x=(sPW-1)then x:=0;
 end;
 SetWindowText(hEdit,Text);
 FreeMem(Text);
 FreeMem(PW);
end;

(*------------------------------------------------*)

// Encrypts the text in hEdit with the text in hPW
procedure Encrypt;
var
x,i,                // count variables
sText,sPW: Integer; // size of Text, PW
Text,PW:   PChar;   // buffer for Text, PW
begin
 sText:=GetWindowTextLength(hEdit)+1;
 sPW:=GetWindowTextLength(hPW)+1;
 GetMem(Text,sText);
 GetMem(PW,sPW);
 GetWindowText(hEdit,Text,sText);
 GetWindowText(hPW,PW,sPW);
 x:=0; // initialize count
 for i:=0 to sText-2 do
 begin
   Text[i]:=Chr(Ord(Text[i])+Ord(PW[x]));
   Inc(x);
   if x=(sPW-1)then x:=0;
 end;
 SetWindowText(hEdit,Text);
 FreeMem(Text);
 FreeMem(PW);
end;

(*------------------------------------------------*)

// This function processes every message sent to the Encrypt Button
function EncryptProc(hWnd,Msg,wParam,lParam:Longint):Longint; stdcall;
var
i: Integer;
begin
 // Always pass the message to the Default procedure
 Result:=CallWindowProc(dEncrypt,hWnd,Msg,wParam,lParam);

 case Msg of
 // If the user presses TAB we're gunna switch the
 // focus over to the Decrypt button.
 WM_KEYDOWN: if wParam=9 then SetFocus(hDecrypt);
 end;

end;

(*------------------------------------------------*)

// This function processes every message sent to the Decrypt Button
function DecryptProc(hWnd,Msg,wParam,lParam:Longint):Longint; stdcall;
begin
 // Always pass the message to the Default procedure
 Result:=CallWindowProc(dEncrypt,hWnd,Msg,wParam,lParam);

 case Msg of
 // if the user presses TAB we're gunna switch
 // the focus back to the Encrypt button.
 WM_KEYDOWN: if wParam=9 then SetFocus(hEncrypt);
 end;

end;

(*------------------------------------------------*)

// This function processes every message sent to our Main window
function WindowProc(hWnd,Msg,wParam,lParam:Longint):Longint; stdcall;
begin
 // Always pass the message to the Default procedure
 Result:=DefWindowProc(hWnd,Msg,wParam,lParam);

 case Msg of
 WM_SIZE:    Resize;
 // When buttons are clicked the message is passed to
 // the parent window, so we handle it here.
 WM_COMMAND: if      lParam=hEncrypt then Encrypt
             else if lParam=hDecrypt then Decrypt;
 WM_DESTROY: ShutDown;
 end;

end;

(*------------------------------------------------*)

// This is the main program function (WinMain)
begin

 hInst:=GetModuleHandle(nil); // get the application instance
                              // hInstance returns zilch

 with wClass do
 begin
   Style:=         CS_PARENTDC;
   hIcon:=         LoadIcon(hInst,'MAINICON');
   lpfnWndProc:=   @WindowProc;
   hInstance:=     hInst;
   hbrBackground:= COLOR_BTNFACE+1;
   lpszClassName:= 'Sample Class';
   hCursor:=       LoadCursor(0,IDC_ARROW);
 end;

 // Once our class is registered we
 // can start making windows with it
 RegisterClass(wClass);

 // Create our main window
 Handle:=CreateWindow(
   'Sample Class',          // Registered Class Name
   'Encrypter - By: GoRDy', // Title of Window
   WS_OVERLAPPEDWINDOW or   // Basic Window Style
   WS_VISIBLE,              // Make it Visible
   10,                      // Left
   10,                      // Top
   400,                     // Width
   300,                     // Height
   0,                       // Parent Window Handle
   0,                       // Handle of Menu
   hInst,                   // Application Instance
   nil);                    // Structure for Creation Data

 // Create the Encrypt button
 hEncrypt:=CreateWindow(
   'Button',
   'Encrypt',
   WS_VISIBLE or WS_CHILD or BS_PUSHLIKE or BS_TEXT,
   5,5,65,24,Handle,0,hInst,nil);

 // Create the Decrypt button
 hDecrypt:=CreateWindow(
   'Button',
   'Decrypt',
   WS_VISIBLE or WS_CHILD or BS_PUSHLIKE or BS_TEXT,
   75,5,65,24,Handle,0,hInst,nil);

 // Create the main Edit
 hEdit:=CreateWindowEx(
   WS_EX_CLIENTEDGE, // this EX style is for the beveled edge
   'Edit',
   '',
   WS_VISIBLE or WS_CHILD or ES_LEFT or ES_MULTILINE or ES_WANTRETURN or ES_AUTOVSCROLL or WS_VSCROLL,
   5,34,380,234,Handle,0,hInst,nil);

 // Create the password Edit
 hPW:=CreateWindowEx(
   WS_EX_CLIENTEDGE,
   'Edit',
   '',
   WS_VISIBLE or WS_CHILD or ES_LEFT or ES_AUTOHSCROLL or ES_PASSWORD,
   230,5,155,24,Handle,0,hInst,nil);

 hLabel:=CreateWindow(
   'Static',
   'Password:',
   WS_VISIBLE or WS_CHILD or SS_LEFT,
   160,10,70,20,Handle,0,hInst,nil);

 // Create a custom font for our window otherwise
 // everything would use the system font (blech!)
 hFont:=CreateFont(
   -12,                           // Height
   0,                             // Width
   0,                             // Angle of Rotation
   0,                             // Orientation
   0,                             // Weight
   0,                             // Italic
   0,                             // Underline
   0,                             // Strike Out
   DEFAULT_CHARSET,               // Char Set
   OUT_DEFAULT_PRECIS,            // Precision
   CLIP_DEFAULT_PRECIS,           // Clipping
   DEFAULT_QUALITY,               // Render Quality
   DEFAULT_PITCH or FF_DONTCARE,  // Pitch & Family
   'MS Sans Serif');              // Font Name

 // Set the fonts for all our controls
 SendMessage(hEncrypt,WM_SETFONT,hFont,0);
 SendMessage(hDecrypt,WM_SETFONT,hFont,0);
 SendMessage(hEdit,WM_SETFONT,hFont,0);
 SendMessage(hPW,WM_SETFONT,hFont,0);
 SendMessage(hLabel,WM_SETFONT,hFont,0);

 // Subclass Encrypt Button (assign it a custom WindowProc)
 dEncrypt:=Pointer(GetWindowLong(hEncrypt,GWL_WNDPROC));
 SetWindowLong(hEncrypt,GWL_WNDPROC,Longint(@EncryptProc));

 // Subclass Decrypt Button
 dDecrypt:=Pointer(GetWindowLong(hDecrypt,GWL_WNDPROC));
 SetWindowLong(hDecrypt,GWL_WNDPROC,Longint(@DecryptProc));

 // The reason I don't subclass the Edit controls here
 // is because they don't do anything custom. If I wanted
 // them to Beep or something whenever you typed a "G" then
 // I would subclass them.

 // Focus on first control (otherwise people with no mouse are screwed)
 SetFocus(hEncrypt);

 // Now we loop GetMessage to process each Message in
 // our main window's message list. Every time the main
 // window recieves a message its added to the list, so
 // this loop here will eventually process it.

 while(GetMessage(Msg,Handle,0,0))do
 begin
   TranslateMessage(Msg);             // Translate any keyboard Msg's
   DispatchMessage(Msg);              // Send it to our WindowProc
 end;                                 // for processing.

end.

PM   Вверх
RA
Дата 14.6.2002, 10:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

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



2 T@k Ты енто на меня так обиделся из-за той истори про раздел "НУЖЕН Хакер". Ты не обижайся это так шутки.    :)
PM   Вверх
TwoK
  Дата 14.6.2002, 10:16 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Как сказал не помню кто на этом форуме -
"Без обид - не детский сад" © :)

Да ну, брось... какие обиды. Ты - мне, я - тебе :D  Так люди и общаются  :D

Все ОК. Эти наши с тобой 2 поста, я чувствую, уйдут во флейм, но тем не менее, я считаю, что обижаться люди начинают тогда, когда им либо нЕчего ответить т.к. они не правы, либо когда им нЕчего ответить т.к. им нЕчего придумать.


--------------------
Говорят, что население в стране все меньше и меньше. А народу по утрам в метро почему-то все больше и больше...
PM MAIL   Вверх
RA
Дата 14.6.2002, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

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



Вот пользуйтесь если кому надо!


Код

function Encrypt(const InString:string; StartKey,MultKey,AddKey:Integer): string;
var
 I : Integer;
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;

function Decrypt(const InString:string; StartKey,MultKey,AddKey:Integer): string;
var
 I : Integer;
begin
 Result := '';
 for I := 1 to Length(InString) do
 begin
   Result := Result + CHAR(Byte(InString[I]) xor (StartKey shr 8));
   StartKey := (Byte(InString[I]) + StartKey) * MultKey + AddKey;
 end;
end;


Пример использования

Edit1.text:=Encode(Edit1.text,12,12,22);

                                       //циферки можно поменять
PM   Вверх
Vit
Дата 14.6.2002, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

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



Вернемся к моему коду, который ты говоришь не работает. А какой ты ключ использовал, что в результате получилась та ситуация с ошибкой? Мне это важно потому, что у меня этот алгоритм во многие программы вшит, и хотя я проблем не наблюдал, всетаки хочется узнать о потенциальных проблемах...


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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