Реферат: Хэш-функции в криптосистемах

<span Arial",«sans-serif»; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:RU">СаратовскийГосударственный Университет им. Н. Г. Чернышевского

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;mso-ansi-language: RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;mso-ansi-language: RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;mso-ansi-language: RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;mso-ansi-language: RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;mso-ansi-language: RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;mso-ansi-language: RU">Курсовая работа

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;mso-ansi-language: RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;mso-ansi-language: RU">«Хеш-функции в криптосистемах»

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;mso-ansi-language: RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;mso-ansi-language: RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;mso-ansi-language: RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;mso-ansi-language: RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;mso-ansi-language: RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;mso-ansi-language: RU">

<span Arial",«sans-serif»;mso-bidi-font-family: «Times New Roman»;mso-ansi-language:RU">Выполнил: студент 112гр. КниИТ

<span Arial",«sans-serif»;mso-bidi-font-family: «Times New Roman»;mso-ansi-language:RU">Иванченко Е. С.

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;mso-ansi-language: RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;mso-ansi-language: RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;mso-ansi-language: RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;mso-ansi-language: RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;mso-ansi-language: RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;mso-ansi-language: RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;mso-ansi-language: RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;mso-ansi-language: RU">г. Саратов 2001

<span Arial",«sans-serif»; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:RU">Содержание

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; mso-ansi-language:RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; mso-ansi-language:RU">Введение                                                                                                                            3

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; mso-ansi-language:RU">Метод хэширования                                                                                                        3

<span Arial",«sans-serif»; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; mso-ansi-language:RU">Коллизии и реверс                                                                                                           3

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; mso-ansi-language:RU">Односторонние хэши                                                                                                       4

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; mso-ansi-language:RU">Список литературы и сайтов                                                                         последняя

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; mso-ansi-language:RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; mso-ansi-language:RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; mso-ansi-language:RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; mso-ansi-language:RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; mso-ansi-language:RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; mso-ansi-language:RU"> 

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; mso-ansi-language:RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; mso-ansi-language:RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; mso-ansi-language:RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; mso-ansi-language:RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; mso-ansi-language:RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; mso-ansi-language:RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; mso-ansi-language:RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; mso-ansi-language:RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; mso-ansi-language:RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; mso-ansi-language:RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; mso-ansi-language:RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; mso-ansi-language:RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; mso-ansi-language:RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; mso-ansi-language:RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; mso-ansi-language:RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; mso-ansi-language:RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; mso-ansi-language:RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; mso-ansi-language:RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; mso-ansi-language:RU">

<span Arial",«sans-serif»; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:RU">Введение

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; mso-ansi-language:RU">В наше время большую роль в информатике играют сетевыетехнологии, базирующиеся на объединении огромного числа машин в единую сеть.Одним из ярких примеров такой сети является Internet. Она основана намногопользовательских  операционныхсистемах, позволяющих  управлять данными,хранящимися на удалённых машинах (серверах) сразу нескольким людям. Иногдатребуется сделать доступной для всех только часть документов. Например,зачастую требуется скрыть програмный код cgi-скрипта от посторонних глаз, новесьма нежелательно запрещать его исполнение. Для этого операционной системенеобходимо “объяснить”, кто является владельцем. В большинстве операционныхсистем идентификация производится по логину и паролю. Но так как с файлом, вкотором содержится этот пароль, работают не один, а несколько пользователей, тохранение его в открытом виде представляет угрозу сохранности документов. Дляэтого потребовалось шифрование данных.

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; mso-ansi-language:RU">

<span Arial",«sans-serif»; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:RU">Метод хэширования

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; mso-ansi-language:RU">Одним из наиболее распространённых методов криптованияявляется хэширование. Метод хеширования позволяет хранить элементы из множестваA в линейном массиве X. Математически это можно записатьтак:

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;mso-ansi-language: RU">

<span Arial",«sans-serif»;mso-bidi-font-family: «Times New Roman»;mso-ansi-language:RU">h: A

®<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; mso-ansi-language:RU"> {0, x-1}

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; mso-ansi-language:RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;mso-ansi-language: RU">т. е. Функция h отображаеткаждый элемент множества A в индексмножества X.

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;mso-ansi-language: RU">Например: пусть даны два множества A{‘a’, ’b’, ’c’, …}  и X {0, 1, 2, …}, тогда функция h:A

®<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; mso-ansi-language:RU">X<span Arial",«sans-serif»;mso-bidi-font-family: «Times New Roman»;mso-ansi-language:RU"> ставит в соответствие каждому элементуиз множества A элемент из множества B. Таким образом h(‘a’)=0, h(‘c’)=2 и т.д.

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;mso-ansi-language: RU">

<span Arial",«sans-serif»; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:RU">Коллизии и реверс

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; mso-ansi-language:RU">Однако, возможно существование такого интервала наобласти определения функции, в границах которого она становится инъективной (т. е. если h(‘a’)=0, то существует такая функция, g: X

®<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;mso-ansi-language: RU">A<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; mso-ansi-language:RU">, для которой g(0)=’a’).Это означает, что только для одного элемента измножества A существует индекс x1. Функция будет инъективна и в том случае, если ни один элемент из A не отображается на интервал (x1, x2) при условии, что последний неравен нулю. В любом другом случае на каждый индекс множества X отображается более одного элемента изA. Это так называемая коллизия хэш-функции.

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black; mso-ansi-language:RU"> 

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black; mso-ansi-language:RU">           

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:red; mso-ansi-language:RU">Реверс хэш-функции<span Arial",«sans-serif»; mso-bidi-font-family:«Times New Roman»;color:black;mso-ansi-language:RU"> заключаетсяв поиске всех отображаемых на данный индекс элементов. Для любого конечногомножества это разрешимая задача, которая имеет наиболее простое решение наинъективных интервалах хэш-множества.

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;mso-ansi-language: RU">

<span Arial",«sans-serif»; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:RU">Односторонние хэши

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black;mso-ansi-language:RU">В криптовании используются особыехэш-функции, называемые односторонними. Функция

¦<span Arial",«sans-serif»;mso-bidi-font-family: «Times New Roman»;color:black;mso-ansi-language:RU">: X®<span Arial",«sans-serif»;mso-bidi-font-family: «Times New Roman»;color:black;mso-ansi-language:RU">Y <span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black; mso-ansi-language:RU">называется <span Arial",«sans-serif»; mso-bidi-font-family:«Times New Roman»;color:red;mso-ansi-language:RU">односторонней<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black; mso-ansi-language:RU">, если ¦<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black;mso-ansi-language:RU">(x)<span Arial",«sans-serif»; mso-bidi-font-family:«Times New Roman»;color:black;mso-ansi-language:RU"> можетбыть легко вычислена для любого элемента из множества X, тогда для всех элементов из множества Y вычисление такого аргумента x,для которого ¦<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black;mso-ansi-language:RU">(x)=y<span Arial",«sans-serif»; mso-bidi-font-family:«Times New Roman»;color:black;mso-ansi-language:RU">, неразрешимо полиномиально. Системы, построенные на односторонних функциях взлому,как правило, не поддаются.

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black;mso-ansi-language:RU">

<span Arial",«sans-serif»; mso-bidi-font-family:«Times New Roman»;color:black;mso-ansi-language:RU">Основныеаспекты написания

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black;mso-ansi-language:RU">При написанием алгоритма kript особое внимание уделялось следующим аспектам:

      <span Arial",«sans-serif»; mso-bidi-font-family:«Times New Roman»;color:black;mso-ansi-language:RU">требованияпользователя к алгоритму;

      <span Arial",«sans-serif»; mso-bidi-font-family:«Times New Roman»;color:black;mso-ansi-language:RU">возможныеварианты утечки зашифрованного пароля;

      <span Arial",«sans-serif»; mso-bidi-font-family:«Times New Roman»;color:black;mso-ansi-language:RU">наиболеедейственные методы расшифровки.

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black;mso-ansi-language:RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; mso-ansi-language:RU">1.  Требования пользователя

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black;mso-ansi-language:RU">Основные требования к алгоритму с точкизрения пользователя являются:

      <span Arial",«sans-serif»; mso-bidi-font-family:«Times New Roman»;color:black;mso-ansi-language:RU">надёжность;

      <span Arial",«sans-serif»; mso-bidi-font-family:«Times New Roman»;color:black;mso-ansi-language:RU">скоростьработы;

      <span Arial",«sans-serif»; mso-bidi-font-family:«Times New Roman»;color:black;mso-ansi-language:RU">системныетребования (необходимые ресурсы).

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black;mso-ansi-language:RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;mso-ansi-language: RU">2.  Вариантыутечки пароля

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black;mso-ansi-language:RU">Одной из главной причиной утечки пароля прииспользовании этого алгоритма служит его хранение в открытом виде самимвладельцем, поэтому большая часть атак в наше время рассчитана на довериепользователя (например, по телефону звонит мнимый администратор сети и проситпароль для проведения профилактических работ). В этом случае защита сводится кидентификации не только пользователя, но и машины, с которой производитсязапрос.

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black;mso-ansi-language:RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black;mso-ansi-language:RU">Второй причиной служит его расшифровка.

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black;mso-ansi-language:RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; mso-ansi-language:RU">3.  Методы расшифровки

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black;mso-ansi-language:RU">Этот метод связан с использованиембольшинством пользователей слишком простых паролей (длиной менее 8символов,  или, пароль, несущий на сбекакую-то смысловую нагрузку (отчество прабабушки по маминой линии)). В этомслучае атаки сводятся к перебору возможных паролей, а защита — к их усложнению.

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black;mso-ansi-language:RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black;mso-ansi-language:RU">Для расшифровки пароля вторым методом,требуется знать его длину и алгоритм шифования. В случае, когда длина паролясоставит менее восьми символов, можно воспользоваться следующим алгоритмом:

<span Arial",«sans-serif»; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:RU">1.   Перевернутьзашифрованный пароль.

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black;mso-ansi-language:RU">

<span Arial",«sans-serif»; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:RU">2.   Так как размерблока не может быть более 5 байт и менее 1 байта, то разобьём его на 8 блоков изапишем в список (список первых блоков, список вторых, и т. д.). Получимвосьмиподсписковый список списков, каждый подсписок которого представляет собойвсе возможные блоки шифрованных символов.

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black; mso-ansi-language:RU">

<span Arial",«sans-serif»; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:RU">3.   Пробегаем в циклепо подсписку, сверяя каждый элемент со всеми символами из ASCII следующимобразом:

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black; mso-ansi-language:RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black;mso-ansi-language:RU">If j*generate(x,n,j) = <элемент подсписка> then write(ord(j)), где jдесятичный код символа, x — ключ, n — последовательный номер символа в пароле(в диапазоне [1, 8]). Если выполнилось это условие, то выведем на экраннайденный символ.

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black;mso-ansi-language:RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black;mso-ansi-language:RU">После выполнения алгоритма на выходе получимлибо пароль, либо такую последовательность, из которой его можно получить.

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black;mso-ansi-language:RU">

<span Arial",«sans-serif»; mso-bidi-font-family:«Times New Roman»;color:black;mso-ansi-language:RU">Описание

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black;mso-ansi-language:RU">В основе алгортма лежит функция от трёхаргументов generate=trunc(k*(abs(sin(ln(a)*x)+sin(cos(b)*x)))):

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black;mso-ansi-language:RU">

<span Arial",«sans-serif»; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:RU">1.   ключа (x);

<span Arial",«sans-serif»; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:RU">2.   десятичного кодсимвола (a);

<span Arial",«sans-serif»; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:RU">3.   номера символа вовведённой строке (b).

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black; mso-ansi-language:RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black; mso-ansi-language:RU">Она используется для преобразования десятичного кодасимвола в число, лежащее в интервале от 0до 2*k, где k — любое число целого типа.

<span Arial",«sans-serif»; mso-bidi-font-family:«Times New Roman»;color:black"> <span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black; mso-ansi-language:RU">Чем больше число <span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black">k — <span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black; mso-ansi-language:RU">тем меньше вероятность коллизий в дальнейшем.

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black; mso-ansi-language:RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">           

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black; mso-ansi-language:RU">После обработки символа он добавляется в список списковпроцедурой <span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black">add_in_list(x:integer; s: string; var gr: llist)<span Arial",«sans-serif»; mso-bidi-font-family:«Times New Roman»;color:black"> <span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black; mso-ansi-language:RU">следующим образом — l^.inf:=ord(s[k])*generate(x,ord(s[k]),k),где <span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black">l^.inf<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">-<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black;mso-ansi-language:RU">элемент списка списков, <span Arial",«sans-serif»; mso-bidi-font-family:«Times New Roman»;color:black">x <span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">- <span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black;mso-ansi-language:RU">ключ (для функции <span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">generate<span Arial",«sans-serif»;mso-bidi-font-family: «Times New Roman»;color:black;mso-ansi-language:RU">), <span Arial",«sans-serif»; mso-bidi-font-family:«Times New Roman»;color:black">s<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black"> — <span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black;mso-ansi-language:RU">строка, разбиваемая на блоки по 8 символов.Каждый подсписок имеет длину не более 8 элементов размером до 5 байт.

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black; mso-ansi-language:RU">           

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black; mso-ansi-language:RU">            Третимшагом является сложение соответствующих элементов

<span Arial",«sans-serif»; mso-bidi-font-family:«Times New Roman»;color:black"> <span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black; mso-ansi-language:RU">процедурой <span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">summ_all(gr: llist; var a:array_type)<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black; mso-ansi-language:RU"> из каждого подсписка <span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">l<span Arial",«sans-serif»;mso-bidi-font-family: «Times New Roman»;color:black"> <span Arial",«sans-serif»; mso-bidi-font-family:«Times New Roman»;color:black;mso-ansi-language:RU">в 8элментный массив<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black"> a<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black; mso-ansi-language:RU">, т.е. первый элемент из первого элемента складывается спервым элементом второго, третьего и т.д. подсписка и записывается<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black"> <span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black; mso-ansi-language:RU">в<span Arial",«sans-serif»;mso-bidi-font-family: «Times New Roman»;color:black"> a[1]<span Arial",«sans-serif»;mso-bidi-font-family: «Times New Roman»;color:black;mso-ansi-language:RU">.

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black; mso-ansi-language:RU">Так — же поступаем и с другими элементами подсписков.

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;mso-ansi-language: RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black; mso-ansi-language:RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black; mso-ansi-language:RU">            Следующимщагом записываем в файл ключ и по очереди все элементы массива

<span Arial",«sans-serif»; mso-bidi-font-family:«Times New Roman»;color:black">a<span Arial",«sans-serif»;mso-bidi-font-family: «Times New Roman»;color:black;mso-ansi-language:RU">, <span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black; mso-ansi-language:RU">обработанные функцией <span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black">FromIntToString()<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black; mso-ansi-language:RU">, которая переводит численный тип в символьный ипереворачивает.

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black; mso-ansi-language:RU">           

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black; mso-ansi-language:RU">            Длясверки пароля его требуется зашифровать заново по известному ключу и сверить сзашифрованным экземпляром.

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black; mso-ansi-language:RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black; mso-ansi-language:RU">            Вотисходный текст программы:

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black; mso-ansi-language:RU">

<span Arial",«sans-serif»; mso-bidi-font-family:«Times New Roman»;color:black">kriptmod.pas

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">unit kriptmod;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">interface

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">type Plist=^list;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">     list=record

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">     inf:   word;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">     num:   1..8;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">     next: Plist;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">     end;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">     Llist=^List_of_list;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">     List_of_list=record

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">     nb:   Plist;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">     inf:  1..32;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">     next: Llist;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">     end;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">     array_type=array[1..8]of longint;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">function generate(x: integer; a, b: byte):integer;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">procedure add_in_llist(x: integer; s: string; var gr: llist);

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">procedure print_llist(gr: llist);

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">procedure summ_all(gr: llist; var a:array_type);

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">function FromIntToString(L: longint):string;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">implementation

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">{--

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black;mso-ansi-language:RU">Эта функция переводит из целочисленного типав символьный<span Arial",«sans-serif»;mso-bidi-font-family: «Times New Roman»;color:black">----------------------------------------------}

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">function FromIntToString;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">   var s: string;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">       l1: longint;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">   begin

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">     l1:=l; s:='';

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">     while (l1 div 10>0)do

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">       begin

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">         case l1 mod 10 of

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">           0: s:=s+'0';

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">           1: s:=s+'1';

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">           2: s:=s+'2';

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">           3: s:=s+'3';

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">           4: s:=s+'4';

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">           5: s:=s+'5';

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">           6: s:=s+'6';

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">           7: s:=s+'7';

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">           8: s:=s+'8';

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">           9: s:=s+'9';

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">           end;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">          l1:=l1 div 10;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">       end;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">        case l1 mod 10 of

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">          0: s:=s+'0';

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">          1: s:=s+'1';

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">          2: s:=s+'2';

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">          3: s:=s+'3';

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">          4: s:=s+'4';

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">          5: s:=s+'5';

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">          6: s:=s+'6';

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">          7: s:=s+'7';

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">          8: s:=s+'8';

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">          9: s:=s+'9';

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">          end;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">     FromIntToString:=s;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">   end;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">{--

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black;mso-ansi-language:RU">Функция генерации (основная)<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">----------------------------------------------}

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">function generate;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">   begin

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">    generate:=trunc(abs(122.5*(sin(ln(a)*x)+sin(cos(b)*x))));

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">   end;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">{--

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black;mso-ansi-language:RU">Процедура добавления в список списков<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">----------------------------------------------}

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">procedure add_in_llist;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">   var g: llist;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">       l: plist;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">       k, i, j: byte;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">   begin

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">     k:=1; i:=1;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">     while (k<=length(s))do

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">       begin

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">         new(g);

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">         g^.inf:=i;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">         g^.nb:=nil;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">         j:=1;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">         while (j<=8) and(k<=length(s)) do

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">           begin

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">           new(l);

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">          l^.inf:=ord(s[k])*generate(x,ord(s[k]),k);

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">           l^.num:=j;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">           l^.next:=g^.nb;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">           g^.nb:=l;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">           k:=k+1;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">           j:=j+1

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">           end;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">         g^.next:=gr;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">         gr:=g;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">         i:=i+1

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">       end;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">   end;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">{--

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black;mso-ansi-language:RU">Процедура заполнения массива <span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">a-----------------------------------}

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">procedure summ_all;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">   var g: llist;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">       l: plist;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">       i: 1..8;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">   begin

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">     g:=gr;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">     while g<>nil do

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">       begin

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">         l:=g^.nb;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">         i:=1;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">         while l<>nildo

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">           begin

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">          a[i]:=a[i]+l^.inf;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">           l:=l^.next;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">           i:=i+1

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">           end;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">         g:=g^.next;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">       end;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">   end;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">{------------------------------------------------}

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">end.

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">

<span Arial",«sans-serif»; mso-bidi-font-family:«Times New Roman»;color:black">kript.pas

<span Arial",«sans-serif»;mso-bidi-font-family: «Times New Roman»;color:black;mso-ansi-language:RU">:<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black; mso-ansi-language:RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black; mso-ansi-language:RU">program kuzik;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black; mso-ansi-language:RU">uses crt, kriptmod;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black; mso-ansi-language:RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black; mso-ansi-language:RU">var x: integer;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black; mso-ansi-language:RU">    i: 1..8;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black; mso-ansi-language:RU">    pass: string;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black; mso-ansi-language:RU">    l:   Llist;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black; mso-ansi-language:RU">    arr:array_type;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black; mso-ansi-language:RU">    f: text;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black; mso-ansi-language:RU">begin

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black; mso-ansi-language:RU">   clrscr;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black; mso-ansi-language:RU">   randomize;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black; mso-ansi-language:RU">  

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">{--<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black;mso-ansi-language:RU">Генерируем число<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black">--}<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black; mso-ansi-language:RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">  

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black; mso-ansi-language:RU">x:=abs(random(9999-101))+101;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black; mso-ansi-language:RU">   write('Password:'); textcolor(0);readln(pass);

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black; mso-ansi-language:RU">  add_in_llist(x,pass,l);

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black; mso-ansi-language:RU">   summ_all(l,arr);

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black; mso-ansi-language:RU">   assign(f,'shadow');

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black; mso-ansi-language:RU">   rewrite(f);

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black; mso-ansi-language:RU">   writeln(f,x);

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black; mso-ansi-language:RU">   for i:=1 to 8 dowrite(f,FromIntToString(arr[i]));

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black; mso-ansi-language:RU">   writeln(f);

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black; mso-ansi-language:RU">   close(f);

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black; mso-ansi-language:RU">   textcolor(2);

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black; mso-ansi-language:RU">   writeln('Useradded in base.');

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black; mso-ansi-language:RU">   repeat untilkeypressed;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black; mso-ansi-language:RU">end.

<span Arial",«sans-serif»;mso-bidi-font-family: «Times New Roman»;color:black;mso-ansi-language:RU">

<span Arial",«sans-serif»; mso-bidi-font-family:«Times New Roman»;color:black">unkript.pas:

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»;color:black; mso-ansi-language:RU">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">program kuzik;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">uses crt, kriptmod;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">var x: integer;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">    i: 1..8;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">    pass, pass1: string;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">    l:   Llist;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">    arr: array_type;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">    f: text;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">    s, s1: string;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">begin

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">   clrscr;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">   write('Password: ');textcolor(0);readln(pass);

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">{--Открываем файл с паролями--}

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">   assign(f,'shadow');

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">   reset(f);

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">{--Читаем ключ--}

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">   readln(f,x);

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">{--Читаем зашифрованный пароль--}

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">   readln(f,pass1);

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">   close(f);

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">{--Шифруем только что введённый пароль--}

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">   add_in_llist(x,pass,l);

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">   summ_all(l,arr);

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">   for i:=1 to 8 dos1:=s1+FromIntToString(arr[i]);

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">{--Сверяем его с паролем из shadow--}

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">   if (pass1=s1)

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">     then begin

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">       textcolor(2);

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">       writeln('Passwordcorrect.')

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">     end

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">     else begin

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">       textcolor(4);

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">       writeln('Passwordincorrect!');

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">     end;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">   repeat until keypressed;

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black">end.

<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; color:black;mso-ansi-language:RU">
еще рефераты
Еще работы по программированию, базе данных