Написал первую программу с gui для шифрования файлов с помощью AES-256 и pbkdf2.
Поиск работает на методе Левенштейна. Это минимальное количество изменений/добавлений/удалений букв. Допустим есть 2 слова: "например" и "непример", чтобы получить первое слово нам нужно изменить 1 букву. В моей реализации количество букв первого слова делится на 2.5 и если метод выдаёт меньшее или равное значение, то это и есть это слово. Возвратимся к примеру, делим кол-во букв на 2.5, получаем 3, сравниваем и понимаем что 2 слово очень похоже на первое, выдаём результат по первому слову.