Форум: "Потрепаться";
Текущий архив: 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. Еслиможно простой приме.
С уважением.
Эд.
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2003.06.02;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c