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" />
<PackageReference Include="SH.Common" />
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
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#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
#tool nuget:?package=SH.Common&version=1.1.5
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
单元测试 看看就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 | Versions 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.
-
.NETStandard 2.1
- BouncyCastle (>= 1.8.9)
- Microsoft.AspNetCore.Cryptography.KeyDerivation (>= 5.0.0)
- Microsoft.AspNetCore.DataProtection.Abstractions (>= 5.0.0)
- Microsoft.AspNetCore.DataProtection.Extensions (>= 5.0.0)
- Microsoft.Extensions.DependencyInjection (>= 5.0.0)
- Newtonsoft.Json (>= 12.0.3)
- System.Management (>= 4.7.0)
- System.Security.Cryptography.Cng (>= 5.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.