Coder Social home page Coder Social logo

dittodhole / dotnet-contrib.system.checksum Goto Github PK

View Code? Open in Web Editor NEW
1.0 2.0 0.0 92 KB

Calculate, store, and verify checksums on various occasions.

Home Page: https://www.nuget.org/packages/Contrib.System.CheckSum

C# 99.65% Batchfile 0.35%
dotnet checksum checksum-calculation checksum-testing

dotnet-contrib.system.checksum's Introduction

dotnet-Contrib.System.CheckSum

Calculate, store, and verify checksums on various occasions.

Installing

PM> Install-Package -Id Contrib.System.CheckSum -pre --source https://www.myget.org/F/dittodhole/api/v2

PM> Install-Package -Id Source.Contrib.System.CheckSum -pre --source https://www.myget.org/F/dittodhole/api/v2

PM> Install-Package -Id Contrib.System.CheckSum

PM> Install-Package -Id Source.Contrib.System.CheckSum

Example

namespace Example1.CreateCheckSumForString
{
  using global::System;
  using global::Contrib.System.CheckSum;

  public static void Main(params string[] args)
  {
    var stringCheckSumCalculator = new StringCheckSumCalculator();

    var input = "hello";

    var checkSum = stringCheckSumCalculator.CalculateCheckSum(input);
  }
}

namespace Example2.InjectHashAlgorithm
{
  using global::System;
  using global::System.Security.Cryptography;
  using global::Contrib.System.CheckSum;

  public static void Main(params string[] args)
  {
    var stringCheckSumCalculator = new StringCheckSumCalculator(MD5.Create); // default is MD5
    stringCheckSumCalculator = new StringCheckSumCalculator(SHA1.Create);
    stringCheckSumCalculator = new StringCheckSumCalculator(SHA256.Create);

    var input = "hello";

    var checkSum = stringCheckSumCalculator.CalculateCheckSum(input);
  }
}

namespace Example3.CreateCheckSumForSequence
{
  using global::System;
  using global::Contrib.System.CheckSum;

  public static void Main(params string[] args)
  {
    var stringCheckSumCalculator = new StringCheckSumCalculator();
    var sequenceCheckSumCalculator = new SequenceCheckSumCalculator(stringCheckSumCalculator);

    var input = new[] { "hello", "foo", "bar" };

    var checkSum = sequenceCheckSumCalculator.CalculateCheckSum(input);
  }
}

namespace Example4.CreateCheckSumForDictionary
{
  using global::System;
  using global::System.Collections.Generic;
  using global::Contrib.System.CheckSum;

  public static void Main(params string[] args)
  {
    var stringCheckSumCalculator = new StringCheckSumCalculator();
    var sequenceCheckSumCalculator = new SequenceCheckSumCalculator(stringCheckSumCalculator);
    var dictionaryCheckSumCalculator = new DictionaryCheckSumCalculator(sequenceCheckSumCalculator);

    var input = new Dictionary<string, string>
    {
      { "entry1", "hello" },
      { "entry2", "foo" },
      { "entry3", "bar" }
    };

    var checkSum = dictionaryCheckSumCalculator.CalculateCheckSum(input);
  }
}

namespace Example5.CreateCheckSumForDictionaryExtended
{
  using global::System;
  using global::System.Collections.Generic;
  using global::Contrib.System.CheckSum;

  public static void Main(params string[] args)
  {
    var stringCheckSumCalculator = new StringCheckSumCalculator();
    var sequenceCheckSumCalculator = new SequenceCheckSumCalculator(stringCheckSumCalculator);
    var dictionaryCheckSumCalculatorEx = new DictionaryCheckSumCalculatorEx(sequenceCheckSumCalculator)
    {
      CheckSumKey = "CRC"
    };

    var input = new Dictionary<string, string>
    {
      { "entry1", "hello" },
      { "entry2", "foo" },
      { "entry3", "bar" },
      { "CRC", string.Empty } // this key will be ignored by the following calculations
    };

    var checkSum = dictionaryCheckSumCalculatorEx.CalculateCheckSum(input);
    checkSum = dictionaryCheckSumCalculatorEx.CalculateAndStoreCheckSum(input);
    checkSum = dictionaryCheckSumCalculatorEx.GetStoredCheckSum(input);
    var isValid = dictionaryCheckSumCalculatorEx.IsStoredCheckSumValid(input);
  }
}

namespace Example6.CreateCheckSumForObject
{
  using global::Contrib.System.CheckSum;

  public class Input
  {
    public string Entry1 { get; set; }
    public string Entry2 { get; set; }
    public string Entry3 { get; set; }
  }

  public static void Main(params string[] args)
  {
    var stringCheckSumCalculator = new StringCheckSumCalculator();
    var sequenceCheckSumCalculator = new SequenceCheckSumCalculator(stringCheckSumCalculator);
    var objectCheckSumCalculator = new ObjectCheckSumCalculator(sequenceCheckSumCalculator);

    var input = new Input
    {
      Entry1 = "hello",
      Entry2 = "foo",
      Entry3 = "bar"
    };

    var checkSum = objectCheckSumCalculator.CalculateCheckSum(input);
  }
}

namespace Example7.CreateCheckSumForObjectExtended
{
  using global::System;
  using global::Contrib.System.CheckSum;

  public class Input
  {
    public string Entry1 { get; set; }
    public string Entry2 { get; set; }
    public string Entry3 { get; set; }
    public string CheckSum { get; set; }
  }

  public static void Main(params string[] args)
  {
    var stringCheckSumCalculator = new StringCheckSumCalculator();
    var sequenceCheckSumCalculator = new SequenceCheckSumCalculator(stringCheckSumCalculator);
    var objectCheckSumCalculatorEx = new ObjectCheckSumCalculatorEx(sequenceCheckSumCalculator)
    {
      CheckSumPropertyName = nameof(Input.CheckSum) // this property will be ignored by the following calculations
    };

    var input = new Input
    {
      Entry1 = "hello",
      Entry2 = "foo",
      Entry3 = "bar",
      CheckSum = string.Empty
    };

    var checkSum = objectCheckSumCalculatorEx.CalculateCheckSum(input);
    checkSum = objectCheckSumCalculatorEx.CalculateAndStoreCheckSum(input);
    checkSum = objectCheckSumCalculatorEx.GetStoredCheckSum(input);
    var isValid = objectCheckSumCalculatorEx.IsStoredCheckSumValid(input);
  }
}

Developing & Building

> git clone https://github.com/dittodhole/dotnet-Contrib.System.CheckSum.git
> cd dotnet-Contrib.System.CheckSum/
dotnet-Contrib.System.CheckSum> cd build
dotnet-Contrib.System.CheckSum/build> build.bat

This will create dotnet-Contrib.System.CheckSum/artifacts/Contrib.System.CheckSum.{version}.nupkg.

License

dotnet-Contrib.System.CheckSum is published under WTFNMFPLv3.

Icon

Linen by Rineesh from the Noun Project.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.