Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
инфа 34-49.docx
Скачиваний:
2
Добавлен:
19.09.2019
Размер:
53.41 Кб
Скачать

37. Методы класса tString

function Add(const S: string): Integer; virtual; - добавляет строку в набор данных и возвращает ее индекс; function AddObject (const S: string ; AObject: TObject) : Integer; virtual; - добавляет пару строка-объект в набор данных, возвращает индекс новой пары строка-объект; procedure Addstrings (Strings: TStrings); virtual; - добавляет к текущему набору новый набор строк; procedure Append (const S : string); - добавляет строку в набор данных, но не возвращает индекс новой строки; procedure Assign (Source: TPersistent) ; override; - уничтожает прежний набор строк и загружает из Source новый набор. Если строки в новом наборе связаны с объектами, то объекты также будут загружены; procedure Clear; virtual; abstract; - очищает набор данных и освобождает связанную с ним память; procedure Delete (Index: Integer); virtual; abstract; - уничтожает элемент набора с индексом Index и освобождает связанную с ним память. Нумерация строк начинается с нуля; destructor Destroy; override; - уничтожает объект класса TStrings. Рекомендуется не вызывать данный метод в приложении, а вместо него использовать метод Free; function Equals (Strings: TStrings) Boolean; - сравнивает построчно текущий набор данных с набором Strings и возвращает True, если наборы идентичны; procedure Exchange (Indexl, Index2: Integer); virtual; - меняет местами строки с индексами IndexlиIndex2; function GetText: PChar; virtual; - помещает значение свойства Text в динамически создаваемый буфер; function IndexOf(const S: string): Integer; virtual; - для строки S возвращает ее индекс или -1, если такой строки в наборе нет; function IndexOfName (const Name: string): Integer; - возвращает индекс строки с именем Name; procedure Insert (Index: Integer; const S: string); virtual; abstract; - вставляет строку в набор и присваивает ей индекс Index; procedure InsertObject (Index: Integer; const S: string; AObject: TObject); - вставляет строку и объект в набор и присваивает им индекс Index; procedure LoadFromFile(const FileName: string); virtual; - загружает набор строк из файла; procedure LoadFromStream (Stream: TStream); virtual; - загружает набор из потока; procedure Move(CurIndex, NewIndex: Integer); virtual; - перемещает строку из положения CurIndex в положение NewIndex; procedure SaveToFile(const FileName: string); virtual; - сохраняет набор строк в файле с именем FileName; procedure SaveToStream(Stream: TStream); virtual; - сохраняет набор строк в потоке; procedure SetText (Text: PChar); virtual; - считывает строки из буфера и записывает их в набор строк.

38. метод RSA-криптографический алгоритм с открытым ключом, основывающийся на вычислительной сложности задачи факторизации больших целых чисел.

RSA относится к так называемым асимметричным алгоритмам, у которых ключ шифрования не совпадает с ключом дешифровки. Один из ключей доступен всем (так делается специально) и называется открытым ключом, другой хранится только у его хозяина и неизвестен никому другому. С помощью одного ключа можно производить операции только в одну сторону. Если сообщение зашифровано с помощью одного ключа, то расшифровать его можно только с помощью другого. Имея один из ключей невозможно (очень сложно) найти другой ключ, если разрядность ключа высока.

Алгоритм RSA состоит из следующих пунктов:

Выбрать простые числа p и q

Вычислить n = p * q

Вычислить m = (p - 1) * (q - 1)

Выбрать число d взаимно простое с m

Выбрать число e так, чтобы e * d = 1 (mod m)

Числа e и d являются ключами RSA. Шифруемые данные необходимо разбить на блоки - числа от 0 до n - 1. Шифрование и дешифровка данных производятся следующим образом:

Шифрование: b = ae (mod n)

Дешифровка: a = bd (mod n)