
Эволюционная структура шифрования на основе масштабируемой сложности во времени

temcrypt — это продвинутый многоуровневый эволюционный механизм шифрования данных, ориентированный на защиту особо чувствительных данных. Он предлагает масштабируемую сложность со временем и устойчив к распространенным атакам методом перебора.
Вы можете создавать собственные приложения, скрипты и автоматизации при его развертывании.
Узнайте, что означает temcrypt, особенности и вдохновение, которое привело меня к его созданию, и многое другое. ПРОЧТИТЕ ДОКУМЕНТ ЗНАНИЙ. Это очень важно для вас.
temcrypt совместим как с Node.js v18 и новее, так и с современными веб-браузерами, что позволяет использовать его в различных средах.
Единственные зависимости, которые использует temcrypt, — это crypto-js для работы с алгоритмами шифрования, такими как AES-256, SHA-256 и некоторыми кодировщиками, а fs используется для работы с файлами в Node.js.
Чтобы использовать temcrypt, необходимо установить Node.js. Затем вы можете установить temcrypt с помощью npm:
npm install temcrypt
после этого импортируйте его в свой код следующим образом:
const temcrypt = require("temcrypt");
Включает функцию автоустановки зависимостей, поэтому вам не нужно беспокоиться об их ручной установке. Просто запустите библиотеку temcrypt.js, и зависимости установятся автоматически, после чего вызывайте её в своём коде. Это было сделано для переносимости:
node temcrypt.js
Кроме того, вы можете использовать temcrypt непосредственно в браузере, включив следующий тег скрипта:
<script src="temcrypt.js"></script>
или минифицированную версию:
<script src="temcrypt.min.js"></script>
Вы также можете подключить библиотеку на вашем сайте или веб-приложении через CDN:
<script src="https://cdn.jsdelivr.net/gh/jofpin/temcrypt/temcrypt.min.js"></script>
temcrypt предоставляет функции encrypt и decrypt для безопасной защиты и раскрытия вашей информации.
Параметры
dataString (string): Строковые данные для шифрования.dataFiles (string): Путь к файлу для шифрования. Укажите либо dataString, либо dataFiles.mainKey (string): Главный ключ (приватный) для шифрования.extraBytes (number, optional): Дополнительные байты, добавляемые к шифрованию. Это необязательный параметр, используемый в процессе шифрования temcrypt. Он позволяет добавить дополнительные байты к зашифрованным данным, увеличивая сложность шифрования, что требует больше вычислительной мощности для дешифрования. Также служит для потери шаблонов путём изменения веса шифрования.Возвращаемое значение
status (boolean): true указывает на успешное дешифрование.hash (string): Уникальный хеш, сгенерированный для проверки легитимности зашифрованных данных.dataString (string) или dataFiles: Дешифрованная строка или путь к дешифрованному файлу в зависимости от входных данных.updatedEncryptedData (string): Обновлённые зашифрованные данные после дешифрования. При каждом дешифровании выходные данные обновляются, так как mainKey меняет свой порядок и сохраняется новая дата последнего дешифрования.creationDate (string): Дата создания зашифрованных данных.lastDecryptionDate (string): Дата последнего успешного дешифрования данных.dataString:
hash (string): Уникальный хеш, сгенерированный для проверки легитимности зашифрованных данных.Вот несколько примеров использования temcrypt. Обратите внимание: при шифровании вы должны ввести ключ и запомнить час и минуту, когда вы зашифровали информацию. Для дешифрования информации необходимо использовать тот же главный ключ в тот же час и минуту в последующие дни:
const dataToEncrypt = "Sensitive data";
const mainKey = "your_secret_key"; // Insert your custom key
const encryptedData = temcrypt.encrypt({
dataString: dataToEncrypt,
mainKey: mainKey
});
console.log(encryptedData);
const encryptedData = "..."; // Encrypted data obtained from the encryption process
const mainKey = "your_secret_key";
const decryptedData = temcrypt.decrypt({
dataString: encryptedData,
mainKey: mainKey
});
console.log(decryptedData);
Шифрование файла:
Чтобы зашифровать файл с помощью temcrypt, вы можете использовать функцию encrypt с параметром dataFiles. Вот пример шифрования файла и получения результата:
const temcrypt = require("temcrypt");
const filePath = "path/test.txt";
const mainKey = "your_secret_key";
const result = temcrypt.encrypt({
dataFiles: filePath,
mainKey: mainKey,
extraBytes: 128 // Optional: Add 128 extra bytes
});
console.log(result);
В этом примере замените 'test.txt' на фактический путь к файлу, который вы хотите зашифровать, и установите 'your_secret_key' в качестве главного ключа для шифрования. Объект result будет содержать детали шифрования, включая уникальный хеш, главный ключ, временной ключ и путь к зашифрованному файлу.
Дешифрование файла:
Чтобы расшифровать файл, который ранее был зашифрован с помощью temcrypt, вы можете использовать функцию decrypt с параметром dataFiles. Вот пример дешифрования файла и получения результата:
const temcrypt = require("temcrypt");
const filePath = "path/test.txt.trypt";
const mainKey = "your_secret_key";
const result = temcrypt.decrypt({
dataFiles: filePath,
mainKey: mainKey
});
console.log(result);
В этом примере замените 'path/test.txt.trypt' на фактический путь к зашифрованному файлу и установите 'your_secret_key' в качестве главного ключа для дешифрования. Объект результата будет содержать статус дешифрования и расшифрованные данные в случае успеха.
Не забудьте указать правильный главный ключ, использованный при шифровании, чтобы успешно расшифровать файл в тот же час и минуту, когда он был зашифрован. Если главный ключ неверен, файл был изменён или время не совпадает, статус дешифрования будет false, и расшифрованные данные будут недоступны.
temcrypt предоставляет функции utils для выполнения дополнительных операций помимо шифрования и дешифрования. Эти вспомогательные функции предназначены для повышения функциональности и удобства использования.
Список функций:
Ниже вы можете увидеть детали и способы их применения.
Обновление главного ключа:
Функция changeKey позволяет изменить главный ключ, использованный для шифрования данных, сохраняя зашифрованные данные нетронутыми. Это полезно, когда вы хотите повысить безопасность зашифрованных данных или периодически обновлять главный ключ.
dataFiles (optional): Путь к файлу, зашифрованному с помощью temcrypt.dataString (optional): Зашифрованная строка, сгенерированная с помощью temcrypt.mainKey (string): Текущий главный ключ, использованный для шифрования данных.newKey(string): Новый главный ключ, который заменит текущий.const temcrypt = require("temcrypt");
const filePath = "test.txt.trypt";
const currentMainKey = "my_recent_secret_key";
const newMainKey = "new_recent_secret_key";
// Update mainKey for the encrypted file
const result = temcrypt.utils({
changeKey: {
dataFiles: filePath,
mainKey: currentMainKey,
newKey: newMainKey
}
});
console.log(result.message);
Проверка целостности данных:
Функция check позволяет проверить целостность данных, зашифрованных с помощью temcrypt. Она проверяет, является ли файл или строка действительными зашифрованными данными temcrypt.
dataFiles (optional): Путь к файлу, который вы хотите проверить.dataString (optional): Зашифрованная строка, которую вы хотите проверить.const temcrypt = require("temcrypt");
const filePath = "test.txt.trypt";
const encryptedString = "..."; // Encrypted string generated by temcrypt
// Check the integrity of the encrypted File
const result = temcrypt.utils({
check: {
dataFiles: filePath
}
});
console.log(result.message);
// Check the integrity of the encrypted String
const result2 = temcrypt.utils({
check: {
dataString: encryptedString
}
});
console.log(result2.message);
Проверка хеша:
Функция verify позволяет проверить целостность зашифрованных данных с помощью значения хеша. Проверяет, соответствует ли выходной хеш зашифрованных данных предоставленному значению хеша.
hash (string): Значение хеша для проверки.dataFiles (optional): Путь к файлу, чей хеш вы хотите проверить.dataString (optional): Зашифрованная строка, чей хеш вы хотите проверить.const temcrypt = require("temcrypt");
const filePath = "test.txt.trypt";
const hashToVerify = "..."; // The hash value to verify
// Verify the hash of the encrypted File
const result = temcrypt.utils({
verify: {
hash: hashToVerify,
dataFiles: filePath
}
});
console.log(result.message);
// Verify the hash of the encrypted String
const result2 = temcrypt.utils({
verify: {
hash: hashToVerify,
dataString: encryptedString
}
});
console.log(result2.message);
В следующей таблице представлены важные коды ошибок и соответствующие сообщения об ошибках, используемые temcrypt для обозначения различных сценариев ошибок.
Ознакомьтесь с каталогом examples для более подробных примеров использования.
⚠️ РЕКОМЕНДАЦИЯ
Размер шифрования строки или файла должен быть меньше 16 КБ (килобайт). Если он больше, вам необходимо иметь достаточную вычислительную мощность для его дешифрования. В противном случае ваш персональный компьютер превысит время, необходимое для поиска правильной комбинации главного ключа и правильного формирования шифрования, и не сможет расшифровать информацию.
ℹ️ СОВЕТЫ
- С помощью temcrypt вы можете расшифровать свою информацию только в последующие дни с ключом, который вы ввели в тот же час и минуту, когда зашифровали.
- Сосредоточьтесь на времени: рекомендуется начинать дешифрование в первые 2–10 секунд, чтобы получить преимущество для генерации правильного формирования ключа.
Содержимое этого проекта лицензировано в соответствии с лицензией Creative Commons Attribution 3.0, а исходный код, используемый для форматирования и отображения этого содержимого, лицензирован в соответствии с лицензией MIT.
Авторское право (c) 2023 от Jose Pino
mainKeytimeKey (string): Временной ключ (приватный) шифрования.dataString (string): Зашифрованная строка.extraBytes (number, optional): Дополнительные байты, использованные для шифрования.dataFiles:
hash (string): Уникальный хеш, сгенерированный для проверки легитимности зашифрованных данных.mainKey (string): Главный ключ, использованный для шифрования.timeKey (string): Временной ключ шифрования.dataFiles (string): Путь к зашифрованному файлу.extraBytes (number, optional): Дополнительные байты, использованные для шифрования.status (boolean): false указывает на неудачу дешифрования.error_code (number): Код ошибки, указывающий причину неудачи.message (string): Описательное сообщение об ошибке, объясняющее причину неудачи.| Код | Сообщение об ошибке | Описание |
|---|
| 420 | Превышен лимит времени дешифрования | Процесс дешифрования занял больше времени, чем разрешенный лимит. |
| 444 | Ошибка дешифрования | В процессе дешифрования произошла ошибка. |
| 777 | Данные не предоставлены | Для операции не было предоставлено данных. |
| 859 | Некорректная зашифрованная строка temcrypt | Предоставленная строка не является действительной зашифрованной строкой temcrypt. |