// БАЗОВЫЕ МЕТОДЫ // // bits[] numberToBits(number [, number]) - получает число и возвращает массив бит длинной в 16 [если задано второе число: 0 - обрезаются незначащие нули числа, иное положительное - биты выравниваются по количеству] // number bitsToNumber(bits[]) - получает массив бит и возвращает десятичное число // object[] arrMerge(object1[], object2[]) - "склеивает" два одномерных массива // bits[] numbersToBits(number[]) - возвращает массив бит получая массив десятичных чисел (16 бит на число. Диапазон 0-2^16) // number[] bitsToNumbers(bits[]) - возвращает массив чисел получая массив бит // bits[] stringToBits(string) - возвращает массив бит для символов строки // string bitsToString(bits[]) - формирует строку из массива бит // // КРИПТО-ЧАСТЬ // // callback - некоторые функци в конце имеют данный аргумент. Это функция обратного вызова. Получает при каждом вызове общий процент выполненой задачи (0-100) // // bits[] to512Multiply(bits[]) - принимает биты сообщения, делает их количество кратным 512 и добавляет в начало сообщения 512 бит - число указывающее на количество мусорных символов с конца // bits[] from512Multiply(bits[]) - принимает массив битов кратный 512 и снимает кратность // bits[] applyGamma(bits1[], bits2[], callback) - принимает биты сообщения и 512 битов гаммы-ключа которые применяет методом XOR к сообщению (таким образом может использоваться как для шифрования, так и расшифрования) // bits[] rearrange(bits[], number, callback) - производит перестановку "вперёд" блоков длинны number местами. number должен быть кратен длинне массива битов // bits[] rearrangeBack(bits[], number, callback) - производит перестановку обратную rearrangeForward "назад", что позволяет отменить влияние вышеописанной функции, аргументы аналогичны // bits[] replaceFromDictionary(bits[], bits[][], callback) - меняет цепочки бит по словарю. Принимает биты и двумерный массив с массивами бит которые необходимо заменить // bits[] replaceFromDictionaryBack(bits[], bits[][], callback) - расшифровывает сообщение принимая те же аргументы что и функция выше. // // ФУНКЦИИ ВЕРХНЕГО УРОВНЯ // // bits[][] generateDictionary(number) - вернёт двумерный массив - случайно сгенерированый словарь с заданой длинной цепочек бит (рекомендуемые значения: 4 - 9 (можно и больше, но там либо комп взрывается, либо выход за 512 бит (что дэфолт для блока шифра)) // string dictionaryToString(bits[][]) - упаковывает двумерный массив словаря в текстовую строку // bits[][] stringToDictionary(string) - распаковывает строку в словарь // string generateKey() - возвращает случайный 512 битный ключь (32 символа) // string getCommands() - возвращает строку со случайными командами шифрования типа GR4DR128 // // ФУНКЦИИ ВЫСШЕГО УРОВНЯ // // string getFullKey() - возвращает случайный сгенерированый ключ // string[] getKeyParts(string) - возвращает одномерный массив размером в 3 ячейки состоящий из частей ключа // string[][] stringToCommands() - возвращает представление комманд в виде двумерного массива (GDR128) // bits[] encrypt(bits[], bits[], bits[][], string[][], callback) - возвращает полностью зашифрованный массив битов используя 512-битную гамму ключа, словарь замены и двумерный массив - алгоритма шифрования // bits[] decrypt(bits[], bits[], bits[][], string[][], callback) - возвращает полностью расшифрованный и готовый к переводу в сообщение массив битов, аргументы аналогичны вышеописанной функции // string encryptFast(string, string, callback) - принимает строку сообщения и строку полного ключа, возвращает зашифрованный текст (не рекомендуется к использованию, лишние расходы производительности на конвертацию типов) // string decryptFast(string, string, callback) - аналогична функции выше. // string stringToBase16(string) - принимает обычную строку в формате UTF-16 и представляет её в виде 16-ричной системы счисления, по 4 символа на один символ строк UTF-16. Удобно при передаче методом GET. // string base16ToString(string) - выплняет обратную вышеописанной функци функцию.