BenMakesGames.AesJson
1.1.0
Prefix Reserved
dotnet add package BenMakesGames.AesJson --version 1.1.0
NuGet\Install-Package BenMakesGames.AesJson -Version 1.1.0
<PackageReference Include="BenMakesGames.AesJson" Version="1.1.0" />
<PackageVersion Include="BenMakesGames.AesJson" Version="1.1.0" />
<PackageReference Include="BenMakesGames.AesJson" />
paket add BenMakesGames.AesJson --version 1.1.0
#r "nuget: BenMakesGames.AesJson, 1.1.0"
#:package BenMakesGames.AesJson@1.1.0
#addin nuget:?package=BenMakesGames.AesJson&version=1.1.0
#tool nuget:?package=BenMakesGames.AesJson&version=1.1.0
What Is It?
AesJson
provides utility functions for serializing and deserializing JSON data to/from disk, using gzip and AES encryption. Both synchronous and asynchronous methods are available.
To make this library easy to use, it includes methods that use Argon2i encryption (via Konscious.Security.Cryptography.Argon2), but you can use any hashing algorithm you like by using MS's Aes
class.
I personally use this library for the save/load system in my desktop games, to discourage players from cheating. (Remember: for an application that runs fully on the player's machine, the encryption password and salt must be baked into your application, and so dedicated players CAN find & extract them. Encryption in that scenario is a deterrent, only.)
🧚 Hey, listen! You can support my development of open-source software on Patreon
Example Usage (using Argon2i)
const string Password = "some super-secret password";
const string Salt = "some salt";
...
var data = new MyDataClass { Name = "Example", Value = 42 };
AesJsonSerializer.WriteFile(data, "path/to/file.save", Password, Salt);
var loadedData = AesJsonSerializer.ReadFile<MyDataClass>("path/to/file.save", Password, Salt);
Example Usage (using any algorithm)
var aes = Aes.Create();
// Set up the AES instance with your desired key size, mode, padding, etc.
var data = new MyDataClass { Name = "Example", Value = 42 };
AesJsonSerializer.WriteFile(data, "path/to/file.save", aes);
var loadedData = AesJsonSerializer.ReadFile<MyDataClass>("path/to/file.save", aes);
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. 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. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net6.0
- Konscious.Security.Cryptography.Argon2 (>= 1.3.1)
-
net9.0
- Konscious.Security.Cryptography.Argon2 (>= 1.3.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.