VTCrypt — это Java-библиотека для генерации криптографических ключей и шифрования данных. Библиотека предоставляет простой и безопасный способ работы с криптографией в Java/Kotlin проектах.
- Генерация 256-символьных криптографических ключей
- Детерминированная генерация ключей с использованием seed-значений
- Блочное шифрование данных в режиме CBC
- Поддержка шифрования данных произвольной длины
- Kotlin-friendly API с расширениями
- Поддержка Java 8+
- Защита конфиденциальных данных
- Безопасное хранение информации
- Реализация защищённого обмена данными между приложениями
- Шифрование в Android-приложениях
- Скачайте последнюю версию библиотеки (vtcrypt-1.0.0.jar) из раздела Releases
- Добавьте JAR-файл в свой проект:
dependencies {
implementation files('libs/vtcrypt-1.0.0.jar')
}
<dependency>
<groupId>ru.vladtop46</groupId>
<artifactId>vtcrypt</artifactId>
<version>1.0.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/libs/vtcrypt-1.0.0.jar</systemPath>
</dependency>
Класс VTCryptKeyGen
отвечает за генерацию 256-символьных криптографических ключей.
generateKey()
- генерация ключа на основе текущего времениgenerateKeyFromSeed(long seed)
- генерация ключа на основе seed-значения
String key = VTCryptKeyGenBuilder.create()
.withSeed(12345L) // опционально
.build();
Класс VTCryptCipher
реализует функции шифрования и дешифрования данных.
encrypt(byte[] data)
- шифрование данныхdecrypt(byte[] encryptedData)
- дешифрование данных
VTCryptCipher cipher = VTCryptCipherBuilder.create()
.withKey(key)
.enableDebug() // опционально
.build();
// Генерация ключа
String key = VTCryptKeyGenBuilder.create()
.withSeed(System.currentTimeMillis())
.build();
// Создание шифратора
VTCryptCipher cipher = VTCryptCipherBuilder.create()
.withKey(key)
.build();
// Шифрование
String message = "Секретное сообщение";
byte[] encrypted = cipher.encrypt(message.getBytes());
// Дешифрование
byte[] decrypted = cipher.decrypt(encrypted);
String decryptedMessage = new String(decrypted);
// Использование extension функций
val key = VTCryptKeyGenBuilder.create().build()
// Шифрование строки
val encrypted = "Секретное сообщение".encrypt(key)
// Дешифрование
val decrypted = encrypted.decryptWithKey(key)
val message = String(decrypted)
// Работа с бинарными данными
val data: ByteArray = getDataFromSomewhere()
val encryptedData = data.encryptWithKey(key)
val decryptedData = encryptedData.decryptWithKey(key)
- Получение входных данных (seed или текущее время)
- Извлечение и обработка последних 8 цифр
- Разделение на 4 пары чисел
- Математические преобразования:
- Переворот пар чисел
- Сортировка по убыванию
- Вычисление логарифмов
- Формирование частей ключа
- Генерация финального 256-символьного ключа
- Генерация случайного IV (16 байт)
- Добавление PKCS7-подобного padding
- Шифрование блоков в режиме CBC:
- XOR с предыдущим блоком
- Модульные операции с ключевыми значениями
- Формирование выходных данных (IV + зашифрованные данные)
- Используйте надёжное хранилище для ключей (например, Android Keystore)
- Не храните ключи в открытом виде
- Используйте уникальные ключи для разных данных
- Регулярно обновляйте ключи
- Включайте режим отладки только при разработке