SH.Common 1.1.5

dotnet add package SH.Common --version 1.1.5
                    
NuGet\Install-Package SH.Common -Version 1.1.5
                    
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="SH.Common" Version="1.1.5" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="SH.Common" Version="1.1.5" />
                    
Directory.Packages.props
<PackageReference Include="SH.Common" />
                    
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 SH.Common --version 1.1.5
                    
#r "nuget: SH.Common, 1.1.5"
                    
#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 SH.Common@1.1.5
                    
#: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=SH.Common&version=1.1.5
                    
Install as a Cake Addin
#tool nuget:?package=SH.Common&version=1.1.5
                    
Install as a Cake Tool

单元测试 看看就Ok了 就是个工具


2020年11月24日

  • 跟新到 .net 5.0

  • 添加了一个方法 SHKeyDerivation。 Pakdf2hashed

  • 添加一个类 SHDataProtectionProvider 是。net 提供的对称加密方法 这里是由 非注入方式

      使用方式 
      var Protector = SHDataProtectionProvider.Instance(文件夹,随机字符串);
      var str = Protector.Protect("sss");//加密
      Protector.Unprotect(str);//解秘
      Protector. ToTimeLimitedDataProtector() //后 同样的方法名可进行时间限制加密
    

JSON


这里文档:

  • 对象二进制化:BinarySerializer
  • 对象二进制到文件:BinarySerializer
  • 二进制文件反序列化: BinaryDerializer
  • 二进制流 反序列化: BinaryDerializer
  • string 反序列化对象:JsonToT< T >
  • xml 转json:XmlToJson
  • json 转 xml: JsonToXml
  • 对象解析成xml:ObjectToXMLString
  • xml 字符串解析成对象:XMLStringToObject

    [TestMethod]
    public void TestJsonToObj()
    {
        string json = "{Name:'123456'}";
        var t = json.JsonToT<A>();
        Assert.IsNotNull(t);
        Assert.AreEqual(t.Name, "123456");
    }
    [TestMethod]
    public void TestObjToJson()
    {
        var s = new A() { Name = "123456" };
        var result= s.ToJson();            
        string json = "{\"Name\":\"123456\"}";
        Assert.AreEqual(json, result);
    }

   
    public class A
    {
        public string Name { get; set; }
    }

分页Linq

    [TestMethod]Linq
    public void TestPage()
    {
        List<string> strs = new List<string>();
        for (int i = 0; i < 101; i++)
        {
            strs.Add(i.ToString());
        }
        var result = strs.PageData(1);
        Assert.AreEqual(20, result.PageSize);
        Assert.AreEqual(101, result.Count);
        Assert.AreEqual(6, result.TotailPage);
    }
    [TestMethod]
    public void TestPageCast()
    {
        List<string> strs = new List<string>();
        for (int i = 0; i < 101; i++)
        {
            strs.Add(i.ToString());
        }
        var result = strs.PageData(1,t=> { return new A { Name = t }; });
        Assert.AreEqual(20, result.PageSize);
        Assert.AreEqual(101, result.Count);
        Assert.AreEqual(6, result.TotailPage);
    }
    public class A
    {
        public string Name { get; set; }
    }

DES 加解秘


方法:

  • AES 获取 Key IV:GetAESKeysAndIV

  • AES 对称加密:AESEncrypro

  • AES 对称解密:AESDecrypro

  • SHA 校验文件:SHA1 SHA256 SHA384 SHA512

  • MD5 单向加密 字符串:GetMd5Hash

       [TestMethod]
      public void TestDES()
      {
          string str = "213456@123as";
          var kd = SHKeyDerivation.InitDES("123456789");
          var enstr = kd.DesEncrypt(str);
          Assert.IsNotNull(enstr);
          var result = kd.DesDecrypt(enstr);
          Assert.AreEqual(str, result);
      }
    

<br> <br>

设备信息 帮助


命名空间 SH.Common.DeviceHelper

* 获取主机的CPU 标识 :GetCPUIdentity
* 获取设备驱动器 :GetDriveInfos
* 获取指定类型的 驱动器 :GetDriveInfoByType

文件压缩


需要引用 System.IO.Compression.FileSystem;<br> FileZipHelper

  • 解压指定文件中的 zip 文件:UpZip
  • zip 追加 文件 :AddZip
  • 目录压缩:Zip
  • 目录解决:UnZip
  • 文件流式压缩:GZipStreamCompress
  • 压缩目录一下文件:GZipStreamCompress
  • 解压文件:GZipStreamDecompress
  • 文件流式压缩:DeflateStreamCompress
  • 压缩目录一下文件:DeflateStreamCompress
  • 解压文件:DeflateStreamDecompress

时间戳

C# 收回自己的无知。 自己写的时间戳 看来是多余的

  • <u>DateTime.ToTimeStamp()</u>
  • DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
  • DateTimeOffset.UtcNow.ToUnixTimeSeconds();

![(Security.readme.md)]

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 netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.1 is compatible. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen 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.

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.1.5 479 5/19/2021
1.1.4 416 4/15/2021
1.1.3 497 11/24/2020
1.0.3 573 5/13/2020
1.0.2 682 5/13/2020 1.0.2 is deprecated because it has critical bugs.
1.0.1 584 5/10/2020
1.0.0 576 5/2/2020