Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 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.84 MB
Время: 0.035 c
3-2795
Andrushk
2003-05-14 16:27
2003.06.02
Сортировка с использованием индексов и PacketRecords


9-2736
Baradoo
2002-12-21 20:39
2003.06.02
Распространяю Свои Игры! Нужна помощь!


1-2968
Unknown user
2003-05-19 21:27
2003.06.02
ПРоблема при копировании канвы TCustomControl в TBitmap.Canvas


14-3108
Vlad Oshin
2003-05-14 15:40
2003.06.02
Что я вижу в FAQ? :-о


6-3038
Карелин Артем
2003-04-03 07:47
2003.06.02
Правила набора номера.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский