Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.03.21;
Скачать: [xml.tar.bz2];

Вниз

Шифрование данных   Найти похожие ветки 

 
Kettle of delphi   (2002-03-05 04:20) [4]

Для простоты положим, что у вас, BDRON, есть Form1, на которой лежат: Memo1(для отображения текста), Edit1(для кодового слова), Button1(для кодирования), Button2(для раскодирования).
Для удобства, поставьте для Memo1, в инспекторе объектов, Properties: ScrollBars -> ssVertical.

===
Общий принцип следующий:
В компьютере каждая буква имеет свой индекс (т.е. - число)...
В паскале существуют две функции, которые могут вам подойти:
1. Ord(X): Longint - возвращает индекс буквы. Например, Ord("a") даст число 97.
2. Chr(X: Byte): Char - возвращает букву по индексу. Например, Chr(97) даст букву "а" (без ковычек, конечно).

===
Метод реализации такой:
Вы вводите текст в Мемо1 (например, через контекстное меня Вставить), указываете кодовое слово в Edit1 и нажимаете на Button1 (для кодирования).

Нажатие на Button1 обрабатывается по такому алгоритму:
(необходимо дополнительно предусмотреть несколько моментов [например (этот момент реализован коде ниже): функция Ord(Memo1.Text[i] вернула, например, цифру 9. тогда, при конвертации в строку, цифру нужно сохранить не как 9, а как "009" (потому что при обратном раскодировании мы будем считывать по 3 знакоместа сразу!)]).
procedure TForm1.Button1Click(Sender: TObject);
var i: Integer; CryptStr: String;
begin
CryptStr := "";
for i := 0 to Length(Memo1.Text) do begin
if IntToStr(Ord(Memo1.Text[i])) = 1 then CryptStr := CryptStr + "00" + IntToStr(Ord(Memo1.Text[i]));
if IntToStr(Ord(Memo1.Text[i])) = 2 then CryptStr := CryptStr + "0" + IntToStr(Ord(Memo1.Text[i]));
if IntToStr(Ord(Memo1.Text[i])) = 3 then CryptStr := CryptStr + IntToStr(Ord(Memo1.Text[i]));
end;
Memo1.Text := CryptStr;
end;


Если нужно сделать кодирование более "стойким" к взлому - можно в Edit1 ввести кодовое слово и "прикладывать" его (последовательно) к содержимому Memo1.

Здесь я описал общий принцип очень простой кодирующей системы. Современные криптоаналитические компьютеры "сломают" такой код за время, ЗНАЧИТЕЛЬНО меньше секунды. Но ваша сестра(?), скорее всего, будет с ним биться (если вы примените "Edit1-способ"), очень долго и безрезультатно :)

Если вы хотите сами написать код, выполняющий стойкое кодирование, то это так же "просто" сделать, как, например, написать игру, типа Дума :)



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.03.21;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.007 c
3-66748
Alex Laza
2002-02-19 10:40
2002.03.21
Как получить доступ к .dbf Налоговой отчетности за 2001 г. (версия 2.1)?


1-66836
LazyCat
2002-03-07 18:53
2002.03.21
Шо за фигня?


1-66855
UnDISCOvery
2002-03-04 12:14
2002.03.21
Уважаемые ! Как побороть эффект


1-66898
Satrap
2002-03-04 17:43
2002.03.21
Вопрос по IShellFolder


7-67036
Nikolay
2001-12-17 21:46
2002.03.21
интересно......





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский