Форум: "Потрепаться";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2003.06.02;
Скачать: [xml.tar.bz2];




Вниз

Шифрование 


nokk9   (2003-05-13 00:52) [0]

Как в дельфи использовать алгоритмы шифровани. Есть ли какие-либо компоненты для этого.



Модж   (2003-05-13 01:23) [1]

А причем тут Делфи и проч?
Ну, вот например, даю алгоритм (де-)шифрования TEA (128-битный).
Но учти, его использование в конечном продукте незаконно :)) из-за длины ключа

procedure EnCrypt(var y,z:longword; k0,k1,k2,k3:longword);
var a,sum:longword;
begin
sum:=0;
for a:=0 to 31 do
begin
inc(sum,Delta);
inc(y,((z shl 4)+k0) xor (z+sum) xor ((z shr 5)+k1));
inc(z,((y shl 4)+k2) xor (y+sum) xor ((y shr 5)+k3));
end;
end;

procedure DeCrypt(var y,z:longword; k0,k1,k2,k3:longword);
var a,sum:longword;
begin
sum:=Delta shl 5;
for a:=0 to 31 do
begin
dec(z,((y shl 4)+k2) xor (y+sum) xor ((y shr 5)+k3));
dec(y,((z shl 4)+k0) xor (z+sum) xor ((z shr 5)+k1));
dec(sum,Delta);
end;
end;

шифруемые (расшифровываемые) данные передаются парой по 64-бит в переменных y,z, ключ, соответственно, бъется в k0,k1,k2,k3 (128 бит).
Радуйся. Алгоритм общедоступен, но расшифровка только перебором и оччч-ень долгая из-за длины ключа.



nokk9   (2003-05-13 03:09) [2]

Модж, спасибо.
На счёт незаконности... Что требуется разрешение ФАПСИ?
И ёще на счёт применения:
Если я правильно понял:
EnCrypt(edit1.text)- зашифровать.
DeCrypt(edit1.text) -рассшифровать?




NightAngel   (2003-05-13 03:20) [3]

В Windows, начиная с Windows 95, обеспечивается реализация шифрования, генерации ключей, создания и проверки цифровых подписей и других криптографических задач. Помимо базовых операций, в настоящее время в CryptoAPI 2.0 поддерживается работа с сертификатами, шифрованными сообщениями в формате PKCS #7 и пр. Функции CryptoAPI можно вызвать из программы, написанной на любимом языке. Код функций криптографической подсистемы содержится в нескольких динамически загружаемых библиотеках Windows (advapi32.dll, crypt32.dll). Для обращения к такой функции из прикладной программы следует объявить ее как внешнюю. Появилась и Delphi-версия (wcrypt2.pas). Ее можно найти нa ftp://delphi-jedi.org/api/CryptoAPI2.zip. Подключив модуль к проекту, вы сможете использовать не только функции CryptoAPI, но и мнемонические константы режимов, идентификаторы алгоритмов и прочих параметров, необходимых на практике.



nokk9   (2003-05-13 03:34) [4]

Спасибо за ответы.
И всётаки поправте если первый ответ я не правильно понял:EnCrypt(edit1.text)- зашифровать.
DeCrypt(edit1.text) -рассшифровать?





mrcat   (2003-05-13 09:16) [5]

>Есть ли какие-либо компоненты для этого.

Для начала определитесь с логикой шифрования, что нужно --- симметричное/асимметричное шифрование, аппаратная/программная реализация, длина ключа.



nokk9   (2003-05-14 01:30) [6]

Нужно просто зашифровать, расшифровать текст например находящийся в Edit1
Длинна ключа Spinedit1.value.
На счёт procedure EnCrypt(var y,z:longword; k0,k1,k2,k3:longword);
var a,sum:longword;
begin
sum:=0;
for a:=0 to 31 do
begin
inc(sum,Delta);
inc(y,((z shl 4)+k0) xor (z+sum) xor ((z shr 5)+k1));
inc(z,((y shl 4)+k2) xor (y+sum) xor ((y shr 5)+k3));
end;
end;
Я плохо понял, как применять.
При компиляции ругается на Delta
Подскажите пожалуста как эту процедуру применить на практике.



nokk9   (2003-05-14 04:23) [7]

NightAngel! Подскажите, пожалуйста, как пользоваться CryptoAPI2.zip. Еслиможно простой приме.
С уважением.
Эд.




Форум: "Потрепаться";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2003.06.02;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.73 MB
Время: 0.026 c
1-2870            kba                   2003-05-21 17:23  2003.06.02  
Помогите разобраться, исчезает mergе ное меню (+)


3-2754            Otchet                2003-05-13 14:54  2003.06.02  
Stack OverFlow


3-2817            Tomkat                2003-05-15 12:06  2003.06.02  
Halcyon & ZAP


14-3133           Drin                  2003-05-12 03:01  2003.06.02  
Вопрос к любителям современной музыки


7-3192            SiJack                2003-03-31 15:22  2003.06.02  
Програмно запретить ждущий режим компа