JCoder.Data.Cryptograph
2.3.1
dotnet add package JCoder.Data.Cryptograph --version 2.3.1
NuGet\Install-Package JCoder.Data.Cryptograph -Version 2.3.1
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="JCoder.Data.Cryptograph" Version="2.3.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add JCoder.Data.Cryptograph --version 2.3.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: JCoder.Data.Cryptograph, 2.3.1"
#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.
// Install JCoder.Data.Cryptograph as a Cake Addin
#addin nuget:?package=JCoder.Data.Cryptograph&version=2.3.1
// Install JCoder.Data.Cryptograph as a Cake Tool
#tool nuget:?package=JCoder.Data.Cryptograph&version=2.3.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
JCoder.Data.Cryptograph
| 属性 | | | --------------- | -------------------------------------------- | | 作者(Authors) | Jackie Law | | 版权(Copyright) | Copyright © Jackie Law. All rights reserved. | | 协议 | MIT | | 联系(QQ) | 1378071853 | | 联系(Wechat) | JackieLaw1024 | | 联系(Email) | JackieLaw-dev@outlook.com |
目录
[TOC]
一.架构说明
JCoder.Data.Cryptograph | |
---|---|
语言 | C# |
协议 | MIT |
.Net框架 | .Net Standard2.1; .Net Framework 4.7.2; .Net 7; .Net 6; |
简述 | A simple library for cryptograph.(一款简易的用于密文的扩展库。) |
1.1 引用类库
引用类库 | 版本 |
---|---|
- | - |
1.2 相关类库
| 相关类库 | 说明 | | ---------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | | JCoder.Db4Net | 一款为方便使用数据库的操作类库。 | | JCoder.Db4Net.ORM | 一个基于JCoder.Db4Net的ORM库。 | | JCoder.Db4Net.Sqlite | 一个基于JCoder.Db4Net且支持Sqlite的库。 | | JCoder.Db4Net.MySql | 一个基于JCoder.Db4Net且支持Mysql的库。 | | JCoder.Db4Net.SqlServer | 一个基于JCoder.Db4Net且支持SqlServer的库 。 | | JCoder.Mock4Net | 一款简易版的用于模拟数据的功能库。 | | JCoder.Log4Net | 一款用于日志记录的类库。 | | JCoder.Log4Net.Sqlite | 一款使用Sqlite进行日志记录的类库。 | | JCoder.Ioc4Net | 一款简易款的Ioc操作类库。 | | JCoder.Extension | A simple library for C# extension.(一款简易的用于c#的扩展库。) |
获取方式
- 版本要求:>=2.0.1
- 以版本2.0.1为例
| 获取方式 | 描述 |
| ------------------ | -------------------------------------------- |
| Package Manager | Install-Package JCoder.Data.Cryptograph -Version 2.0.1
|
| .Net CLI | dotnet add package JCoder.Data.Cryptograph --version 2.0.1
|
| PackageReference | <PackageReference Include="JCoder.Data.Cryptograph" Version="2.0.1" />
|
| Paket CLI | paket add JCoder.Data.Cryptograph --version 2.0.1
|
| Script&Interactive | #r "nuget: JCoder.Data.Cryptograph, 2.0.1"
|
| Cake | // Install JCoder.Data.Cryptograph as a Cake Addin<br/>#addin nuget:?package=JCoder.Data.Cryptograph&version=2.0.1<br/><br/>// Install JCoder.Data.Cryptograph as a Cake Tool<br/>#tool nuget:?package=JCoder.Data.Cryptograph&version=2.0.1 |
三.使用说明
3.1 主要类与接口
| 名称 | 类型 | 描述 | | ---------------------- | ------ | -------------------------------------------------------------------------------- | | MD5Cryptor | 类 | 用于文本进行哈希算法(MD5方式)的加密。 | | SHA1Cryptor | 类 | 用于文本进行哈希算法(SHA1方式)的加密。 | | SHA256Cryptor | 类 | 用于文本进行哈希算法(SHA256方式)的加密。 | | SHA384Cryptor | 类 | 用于文本进行哈希算法(SHA384方式)的加密。 | | SHA512Cryptor | 类 | 用于文本进行哈希算法(SHA512方式)的加密。 | | RSACryptor | 类 | 用于文本进行非对称算法(RSA方式)的加解密。 | | AESCryptor | 类 | 用于文本进行对称算法(AES方式)的加解密。 | | DESCryptor | 类 | 用于文本进行对称算法(DES方式)的加解密。 | | RC2Cryptor | 类 | 用于文本进行对称算法(RC2方式)的加解密。 | | RijndaelCryptor | 类 | 用于文本进行对称算法(Rijndael方式)的加解密。 | | TripleDESCryptor | 类 | 用于文本进行对称算法(TripleDES方式)的加解密。 |
3.2 Hash哈希算法
Hash哈希算法-文本加密
// MD5加密
new MD5Cryptor().Encrypt("Test Data."); // 4AS/KGO6aulpUtgnpaMjNA==
Cryption.EncryptByHash(HashCryptoType.MD5, "Test Data.");
// SHA1加密
new SHA1Cryptor().Encrypt("Test Data."); // jBSa7dqq+xS4lyebSQ0FAXSZ6eI=
Cryption.EncryptByHash(HashCryptoType.SHA1, "Test Data.");
// SHA256加密
new SHA256Cryptor().Encrypt("Test Data."); // 2av2L3N0s+Rf5dt59Ys66QV0CPLLqrL1PgudPlDEzBU=
Cryption.EncryptByHash(HashCryptoType.SHA256, "Test Data.");
// SHA384加密
new SHA384Cryptor().Encrypt("Test Data."); // 1QVvCVcxJavzRwbkn1iZ5Y8nsDnvHxZ67zzvf4q2IFWVnTrz1ZipMstqpGOL2gJF
Cryption.EncryptByHash(HashCryptoType.SHA384, "Test Data.");
// SHA512加密
new SHA512Cryptor().Encrypt("Test Data."); // 8+5sKhm8ZYCfTxjA8UfNcCZUln6CdcuUoEMijAvhy3rdGbMQmnVVLareL/RBERLOfGSqJTkt7V0jIItG54+UCQ==
Cryption.EncryptByHash(HashCryptoType.SHA512, "Test Data.");
Hash哈希算法-byte[]加密
byte[] _bytes = Encoding.UTF8.GetBytes("Test Data.");
// MD5加密
new MD5Cryptor().Encrypt(_bytes);
Cryption.EncryptByHash(HashCryptoType.MD5, _bytes);
// SHA1加密
new SHA1Cryptor().Encrypt(_bytes);
Cryption.EncryptByHash(HashCryptoType.SHA1, _bytes);
// SHA256加密
new SHA256Cryptor().Encrypt(_bytes);
Cryption.EncryptByHash(HashCryptoType.SHA256, _bytes);
// SHA384加密
new SHA384Cryptor().Encrypt(_bytes);
Cryption.EncryptByHash(HashCryptoType.SHA384, _bytes);
// SHA512加密
new SHA512Cryptor().Encrypt(_bytes);
Cryption.EncryptByHash(HashCryptoType.SHA512, _bytes);
3.3 非对称算法
RSA非对称算法-文本加解密
// RSACryptor - 默认加密
new RSACryptor().Encrypt("Test data.");
// Z3TuoRUrAKYqPmKMB9SBFPXPN334lPOU1irEe1gVQhB1W5DICnENin8t/2+OMV172BT+o3I6gFGVjgFvQQyrsuSJCcV9I4WFoF245ALc6kPlGjFNKOqv03O9jRPLUECPdtz2WcYJl1ii/Wu6Gd0GEdv5854X7G6s5jUoczXh/TyDLm0YDdgTzUkbXvQD9xxayM/T8c7lfU8SuFY4QoVtgNNyUpnEdZGHBjD8A9ESUnQt9efMgv9h0S2myaSRW77AgtmgDYcnNfWGfTRLKQ85V8GCCmonbZR774i0wjCtcas/ifxdCij6K+CGC1oDu1YjXpQBhk9hzl4aZt1QZ1vb2Q==
// RSACryptor - 通过公钥加密,私钥解密
var _privateKey="<RSAKeyValue><Modulus>xrTie4WG6EICeVngQp1hiNM5PGKFW7b61ZLQtkty2wXnfEI7mJLPMUFX4xnxX9L7zX6Ok6wB5mEGIvd5u6ea1kHW7nLk9Vu9GAF3/ptB3GUR1pOumVA5zU3/n2XEyLqisqtoGOCjLbWJnco+yEC0VrRMpzsdEcndjF9mIwLje3c2WBmGqHMfpluUT1eDoO/kbP0C2RMhNpBFV9RxWsHpJ8KGu2Poivv7loxfZJ1yPJB9J9V42wVGO6cPCM0B51NqQqBIg8wwmRheXqtETLdDKcxYbioT9m/+5inYP8wTmxD/eUFU9m/DlYUwB144Y99ItrDlHBsQ9RKTB7CC27UEiQ==</Modulus><Exponent>AQAB</Exponent><P>zu2WMaSm6KRmhc5307rTzNf1KOlxNBGsVYsaIXFRB3YX2rqLklko5l2+pyIGcoLRpAMJaVWYocdgM1Kc+QNNfV26BfeOUlLNszg3QqavQJlvoJYBC6mdGoSlv3hof60f1ljhNjzwZ59BYt6C5fEv93E0JBVifiF42YLuu7W+a2s=</P><Q>9dQtw06DgQbfIQGncpfpN8Rd+dhyDLMkz2fhhTu5Wy3Xnne3Rz6X6sdlX6VyxDW+1tVeq6k1anwpIqbWYKzWlOk8hRXH7oIWkEbz+9VjtCPTw6FPLE0RLNOcPMKqnKPeZJksJIR8MzzJWPtuzs27FVo1cwMV37ALHmXEYq1VYNs=</Q><DP>IhTLif2eZ+673An3fm3k+HYRMN3SAUtv4N76PMvXFq2CnEnhNwdsTxTdk9Vszmtxb9v4LtskOnEGDS3sIK9EkgNf4h+11yVAL+ZwY4/kiXU8B2ztWyhicb2rNu/z9iNjfQBCh5Zd2hNGx6vyT0D8L3r7pX3ILRICP4DrJQt4A2U=</DP><DQ>LNEd9rldqCxEiZPvnyiq0Avwxhf70uzmDRn3N38H7+OPp8hTlZ2HvLnVdXaIUdUqkagctlcG8f7o0PRxqPZZuJQ9AFZUONtmma8V1Be3MaRGeyfxczYpp2580Wb8C8qkRNrX/WBZ9E1kt+A+91zyepYToIAzgLBrloMfJo5LPnk=</DQ><InverseQ>TkhnS+zfSxAuDPr0Z5LAttPsUPBsMx5sEoK4SAszlThWAnrX5NlhhIE1olwple6DhOgGulOjQmmkBr1rp0zaDrXdZo0j9Dg4wEfR4FHBj79fRVGd3d9oEFA7Wof6yYlXVcEWKL8ghNPbAzU2+k0mkU1Qj/7/HH9QN1W8Y9W2ZP0=</InverseQ><D>HqKUqGaVvgkvSHZK1PpepzGpiV3HIbS8R2EzPGe1dX8biVTMy2EXAIkKe8DsLdHhcHUqlinWwSYERC/TXNMiVBYihPDBy/Iw3Rqc3WwiY1BRx7tNF+X+g2CbIIAYLrpXiyRSEEPR5KIwbVtZApa3NwblKoM6oBt3RMUQgiVX3RjmQj8/D6v+Io/m5c5N5ViCmTEXk3uWJvNIk0O5O78nxfssAxBNtcJRcNqdjtyfMGKv+H7s/m6lSVOLzIoOHTP3ZJ1u0GyuYpmF6x9ZxikOzjzvKeW8vVmoawBsM24w8gKiuhWRZcru5Gm0r6wjP7NH6aY8qOLUq46467Y1X0O74Q==</D></RSAKeyValue>";
var _publicKey="<RSAKeyValue><Modulus>xrTie4WG6EICeVngQp1hiNM5PGKFW7b61ZLQtkty2wXnfEI7mJLPMUFX4xnxX9L7zX6Ok6wB5mEGIvd5u6ea1kHW7nLk9Vu9GAF3/ptB3GUR1pOumVA5zU3/n2XEyLqisqtoGOCjLbWJnco+yEC0VrRMpzsdEcndjF9mIwLje3c2WBmGqHMfpluUT1eDoO/kbP0C2RMhNpBFV9RxWsHpJ8KGu2Poivv7loxfZJ1yPJB9J9V42wVGO6cPCM0B51NqQqBIg8wwmRheXqtETLdDKcxYbioT9m/+5inYP8wTmxD/eUFU9m/DlYUwB144Y99ItrDlHBsQ9RKTB7CC27UEiQ==</Modulus><Exponent>AQAB</Exponent></RSAKeyValue>";
var _code="Z3TuoRUrAKYqPmKMB9SBFPXPN334lPOU1irEe1gVQhB1W5DICnENin8t/2+OMV172BT+o3I6gFGVjgFvQQyrsuSJCcV9I4WFoF245ALc6kPlGjFNKOqv03O9jRPLUECPdtz2WcYJl1ii/Wu6Gd0GEdv5854X7G6s5jUoczXh/TyDLm0YDdgTzUkbXvQD9xxayM/T8c7lfU8SuFY4QoVtgNNyUpnEdZGHBjD8A9ESUnQt9efMgv9h0S2myaSRW77AgtmgDYcnNfWGfTRLKQ85V8GCCmonbZR774i0wjCtcas/ifxdCij6K+CGC1oDu1YjXpQBhk9hzl4aZt1QZ1vb2Q==";
new RSACryptor(_privateKey, _publicKey).Decrypt(_code); // "Test data."
//工具类-加密
Cryption.CryptoByRSA(CryptoAction.ENCRYPT, "Public Key", "Test Data.");
//工具类-解密
Cryption.CryptoByRSA(CryptoAction.DECRYPT, "Private Key", "Encrypt data.");
RSA非对称算法-byte[]加解密
byte[] _bytes1 = Encoding.UTF8.GetBytes("Test data.");
byte[] _bytes2 = Convert.FromBase64String("Encrypt data.");
// 操作类-加密
new RSACryptor().Encrypt(_bytes1);
// 操作类-解密
new RSACryptor("Private Key", "Public Key").Decrypt(_bytes2);
//工具类-加密
Cryption.CryptoBytesByRSA(CryptoAction.ENCRYPT, "Public Key", _bytes1);
//工具类-解密
Cryption.CryptoBytesByRSA(CryptoAction.DECRYPT, "Private Key", _bytes2);
3.4 对称算法
对称算法-文本加解密
// AES加解密(1)
new AESCryptor().Encrypt("Test data."); // ci99mydbK9cmT1hVmidvJw==
new AESCryptor().Decrypt("ci99mydbK9cmT1hVmidvJw=="); // Test data.
// AES加解密(2)
new AESCryptor("key123", "iv123").Encrypt("Test data."); // FqL3yr7elv7zINrgp8M9Cw==
new AESCryptor("key123", "iv123").Decrypt("FqL3yr7elv7zINrgp8M9Cw=="); // Test data.
// AES加解密(3)
Cryption.CryptoBySymmetric(SymmetricCryptoType.AES, CryptoAction.ENCRYPT, "Test data.", "key123", "iv123"); // FqL3yr7elv7zINrgp8M9Cw==
Cryption.CryptoBySymmetric(SymmetricCryptoType.AES, CryptoAction.DECRYPT, "FqL3yr7elv7zINrgp8M9Cw==", "key123", "iv123"); // Test data.
// DES加解密(1)
new DESCryptor().Encrypt("Test data."); // Ed5peHVM9LKO0FKWpgKf3Q==
new DESCryptor().Decrypt("Ed5peHVM9LKO0FKWpgKf3Q=="); // Test data.
// DES加解密(2)
new DESCryptor("key123", "iv123").Encrypt("Test data."); // nISF+KqBk9uX6pPozGBmpw==
new DESCryptor("key123", "iv123").Decrypt("nISF+KqBk9uX6pPozGBmpw=="); // Test data.
// DES加解密(3)
Cryption.CryptoBySymmetric(SymmetricCryptoType.DES, CryptoAction.ENCRYPT, "Test data.", "key123", "iv123"); // nISF+KqBk9uX6pPozGBmpw==
Cryption.CryptoBySymmetric(SymmetricCryptoType.DES, CryptoAction.DECRYPT, "nISF+KqBk9uX6pPozGBmpw==", "key123", "iv123"); // Test data.
// RC2加解密(1)
new RC2Cryptor().Encrypt("Test data."); // OliAvKacH8ZgekTIY5+BFw==
new RC2Cryptor().Decrypt("OliAvKacH8ZgekTIY5+BFw=="); // Test data.
// RC2加解密(2)
new RC2Cryptor("key123", "iv123").Encrypt("Test data."); // 7LRnmtxxPJVgxEpUgEbd2w==
new RC2Cryptor("key123", "iv123").Decrypt("7LRnmtxxPJVgxEpUgEbd2w=="); // Test data.
// RC2加解密(3)
Cryption.CryptoBySymmetric(SymmetricCryptoType.RC2, CryptoAction.ENCRYPT, "Test data.", "key123", "iv123"); // 7LRnmtxxPJVgxEpUgEbd2w==
Cryption.CryptoBySymmetric(SymmetricCryptoType.RC2, CryptoAction.DECRYPT, "7LRnmtxxPJVgxEpUgEbd2w==", "key123", "iv123"); // Test data.
// Rijndael加解密(1)
new RijndaelCryptor().Encrypt("Test data."); // wuGkWVg/U5mJaxDA4IaEnA==
new RijndaelCryptor().Decrypt("wuGkWVg/U5mJaxDA4IaEnA=="); // Test data.
// Rijndael加解密(2)
new RijndaelCryptor("key123", "iv123").Encrypt("Test data."); // efHNwTekYAOQISrXkWnJzA==
new RijndaelCryptor("key123", "iv123").Decrypt("efHNwTekYAOQISrXkWnJzA=="); // Test data.
// Rijndael加解密(3)
Cryption.CryptoBySymmetric(SymmetricCryptoType.Rijndael, CryptoAction.ENCRYPT, "Test data.", "key123", "iv123"); // efHNwTekYAOQISrXkWnJzA==
Cryption.CryptoBySymmetric(SymmetricCryptoType.Rijndael, CryptoAction.DECRYPT, "efHNwTekYAOQISrXkWnJzA==", "key123", "iv123"); // Test data.
// TripleDES加解密(1)
new TripleDESCryptor().Encrypt("Test data."); // tMQW71cbo05SiGP241nByQ==
new TripleDESCryptor().Decrypt("tMQW71cbo05SiGP241nByQ=="); // Test data.
// TripleDES加解密(2)
new TripleDESCryptor("key123", "iv123").Encrypt("Test data."); // IfbBaCqS5x+hDGgHv+ojAw==
new TripleDESCryptor("key123", "iv123").Decrypt("IfbBaCqS5x+hDGgHv+ojAw=="); // Test data.
// TripleDES加解密(3)
Cryption.CryptoBySymmetric(SymmetricCryptoType.TripleDES, CryptoAction.ENCRYPT, "Test data.", "key123", "iv123"); // IfbBaCqS5x+hDGgHv+ojAw==
Cryption.CryptoBySymmetric(SymmetricCryptoType.TripleDES, CryptoAction.DECRYPT, "IfbBaCqS5x+hDGgHv+ojAw==", "key123", "iv123"); // Test data.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. 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 is compatible. 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. |
.NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.1 is compatible. |
.NET Framework | net472 is compatible. net48 was computed. net481 was computed. |
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.
-
.NETFramework 4.7.2
- No dependencies.
-
.NETStandard 2.1
- No dependencies.
-
net6.0
- No dependencies.
-
net7.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.
Please contact Jackie by QQ 1378071853 or E-mail JackieLaw-dev@outlook.com;