LocalData 1.0.3

There is a newer version of this package available.
See the version list below for details.
dotnet add package LocalData --version 1.0.3
                    
NuGet\Install-Package LocalData -Version 1.0.3
                    
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="LocalData" Version="1.0.3" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="LocalData" Version="1.0.3" />
                    
Directory.Packages.props
<PackageReference Include="LocalData" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add LocalData --version 1.0.3
                    
#r "nuget: LocalData, 1.0.3"
                    
#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.
#:package LocalData@1.0.3
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=LocalData&version=1.0.3
                    
Install as a Cake Addin
#tool nuget:?package=LocalData&version=1.0.3
                    
Install as a Cake Tool

A biblioteca LocalData é uma biblioteca .NET Standard 2.0 que fornece uma classe DataFile para gerenciar arquivos de dados criptografados.

https://www.nuget.org/packages/LocalData

Uso da biblioteca Para usar a biblioteca LocalData, você precisa adicionar a referência ao seu projeto e importar o namespace LocalData no seu código.

using LocalData;

DataFile A classe DataFile é a principal classe da biblioteca e fornece métodos para armazenar e recuperar dados criptografados em um arquivo. A classe possui os seguintes construtores:

Construtor sem parâmetros

public DataFile()

O construtor padrão cria um arquivo criptografado chamado "date.bin" na pasta atual do aplicativo e usa a senha "A-32-CHARACTER-PASSWORD-!@#$%¨&*" e o IV "16CHARACTERPASSW" para criptografar os dados.

Construtor com parâmetros

public DataFile(string filePath, string key, string iv, string customPrefix = null)

Este construtor cria um arquivo criptografado com o caminho filePath e usa a chave key e o IV iv para criptografar os dados. O parâmetro customPrefix é opcional e define o prefixo usado para todas as variáveis armazenadas no arquivo.

Métodos A classe DataFile fornece os seguintes métodos:

Clear(): Apaga o arquivo criptografado.

VerifyExistCFG(string variable): Verifica se uma variável com o nome especificado existe no arquivo criptografado.

LoadCfg<T>(string variable, T defaultValue): Carrega o valor de uma variável com o nome especificado do arquivo criptografado. Se a variável não existir, retorna o valor padrão especificado em defaultValue.

SaveCfg<T>(string variable, T value): Salva o valor especificado em value para uma variável com o nome especificado em variable.

GetAllVariableNames(): Retorna um objeto IEnumerable<string> que contém o nome de todas as variáveis armazenadas no arquivo criptografado.

CryptFileHandler A classe CryptFileHandler é usada internamente pela classe DataFile para criptografar e descriptografar dados. Você não precisa usar essa classe diretamente em seu código.

Algumas restrições do uso da biblioteca e do código apresentado incluem:

1 - A classe CryptFileHandler usa criptografia AES com uma chave de 32 bytes e um vetor de inicialização de 16 bytes. Se esses valores forem alterados ou definidos incorretamente, a criptografia pode falhar ou ser menos segura. É necessario que tenha a primeira chave tenha 32 caracteres e a segunda 16.

2 - O código assume que o arquivo de dados será armazenado no disco em um local específico. Se o caminho ou nome do arquivo for alterado, o código pode não funcionar corretamente.

3 -O código não tem mecanismos de segurança para impedir o acesso ou a edição não autorizada dos dados armazenados.

4 - A classe DataFile não é thread-safe e não fornece mecanismos de bloqueio ou exclusão mútua para garantir que apenas uma thread acesse o arquivo de dados ao mesmo tempo.

5 - A classe DataFile permite que os usuários armazenem qualquer tipo de objeto como um valor, mas isso pode causar problemas de serialização ou desserialização se o tipo de objeto não for serializável ou não puder ser convertido de volta para o tipo original.

6 - O código não tem tratamento de exceções para lidar com erros ou exceções que podem ocorrer durante a execução, o que pode levar a um comportamento inesperado ou falhas no aplicativo que usa essa biblioteca.

7 - Não é recomendado trabalhar com muitos volumes de dados pois a biblioteca salva tudo diretamente no armazenamento do diposito.

8 - Não ultilize quebras de linhas nas string, o caractere \n é ultilizado para a separação de dados.

--> Global usage example ←-

using System;
using LocalData;
namespace Exemplo
{
    internal class Test
    {
        private static void Main(string[] args)
        {
            DataFile dataFile = new DataFile();
            //save string
            dataFile.SaveCfg("connectionstring", "Server=127.0.0.1;Database=myDataBase;Uid=Root;Pwd=abc123;");
            //load string
            string cnn = dataFile.LoadCfg("connectionstring", "");

            //other types of data
            int time = dataFile.LoadCfg<int>("time", 15);
            bool isTest = dataFile.LoadCfg<bool>("isTest", false);

            //The second parameter serves as the default value if the data has never been saved.
            //If the data has never been saved, the default value will be saved.
            //If the data has been saved, the default value will be ignored.
            if (dataFile.LoadCfg<bool>("FirstOpen", true))
            {
                dataFile.SaveCfg<bool>("FirstOpen", false);
                Console.WriteLine("First time");
            }
            else
            {
                Console.WriteLine("Not First time");
            }
            Console.ReadKey();
        }
    }
}
Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  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 was computed.  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. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .NETStandard 2.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.4 305 10/18/2023
1.0.3 182 8/31/2023
1.0.2 225 6/4/2023
1.0.1 208 6/4/2023
1.0.0 277 2/18/2023