Kuznyechik 1.0.1

dotnet add package Kuznyechik --version 1.0.1                
NuGet\Install-Package Kuznyechik -Version 1.0.1                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Kuznyechik" Version="1.0.1" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Kuznyechik --version 1.0.1                
#r "nuget: Kuznyechik, 1.0.1"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Kuznyechik as a Cake Addin
#addin nuget:?package=Kuznyechik&version=1.0.1

// Install Kuznyechik as a Cake Tool
#tool nuget:?package=Kuznyechik&version=1.0.1                

Kuznyechik (Кузнечик)

Библиотека для шифрования данных с помощью алгоритма "Кузнечик", основанного на ГОСТ 34.12-2018. Этот симметричный блочный шифр использует блоки размером 128 бит и ключи длиной 256 бит, обеспечивая высокий уровень безопасности для обработки данных.

Установка

Для установки библиотеки Kuznyechik вы можете воспользоваться одним из следующих способов:

  1. Установка через NuGet Вы можете установить NuGet-пакет через графический интерфейс Visual Studio или выполнить команду в консоли диспетчера пакетов:
Install-Package Kuznyechik
  1. Скачивание DLL Также вы можете скачать DLL-файл с GitHub и добавить его в ваш проект.

  2. Копирование класса Если вы предпочитаете, вы можете скопировать исходный код класса Scrambler и использовать его непосредственно в вашем проекте.

Использование

Для использования библиотеки необходимо подключить пространство имён Kuznyechik:

using Kuznyechik;

После добавления пространства имён станет доступен класс Scrambler, который предоставляет методы шифрования и расшифровывания данных как в виде массива, так и в виде потока.

  1. Шифрование и расшифровка в виде массива:
string text = "Hello Wolrd!";
byte[] key = new byte[32];
byte[] message = Encoding.UTF8.GetBytes(text);

{
    Random random = new Random();
    random.NextBytes(key);
}

Scrambler scrambler = new Scrambler(key);

scrambler.Encrypt(ref message);
scrambler.Decrypt(ref message);

string outText = Encoding.UTF8.GetString(message);
  1. Шифрование и расшифровка в виде потока:
byte[] key = new byte[32];
byte[] message = Encoding.UTF8.GetBytes(text);
byte[] messageCopy = (byte[])message.Clone();

using (MemoryStream dataStream = new MemoryStream(message))
{
    using (MemoryStream encryptedStream = new MemoryStream())
    {
        Random random = new Random();
        random.NextBytes(key);

        Scrambler scrambler = new Scrambler(key);
        scrambler.Encrypt(dataStream, encryptedStream);
        dataStream.Position = encryptedStream.Position = 0;
        scrambler.Decrypt(encryptedStream, dataStream);
    }
}

Особенности

  1. Алгоритм шифрования работает с несколькими блоками одновременно, что может привести к увеличенной загрузке процессора во время шифрования.
Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net8.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.0.1 94 8/28/2024
1.0.0 125 8/24/2024