当前位置: 首页 > news >正文

CryptoNet:一个高效、安全的加密库

CryptoNet 是一个简单、快速且轻量级的非对称和对称加密 NuGet 库,支持跨平台 Windows、Linux。不依赖其他库, 100% C# 实现。

CryptoNet 可以通过两种方式使用:

  • • 对称方式

  • • 非对称方式

对称方式

您使用相同的密钥进行加密和解密。

非对称方式

通过非对称方式,CryptoNet 可以使用自己生成的 RSA 密钥对(私钥/公钥)来加密和解密内容。

您可以将私钥存储在一台或多台机器上。公钥可以轻松分发给所有客户端。

 

 

使用示例

 

1.使用对称密钥加密和解密内容

在下面示例中,CryptoNetAes 生成随机的密钥和 iv。

ICryptoNet cryptoNet = new CryptoNetAes();
var key = cryptoNet.ExportKey();

ICryptoNet encryptClient = new CryptoNetAes(key);
var encrypt = encryptClient.EncryptFromString(ConfidentialDummyData);

ICryptoNet decryptClient = new CryptoNetAes(key);
var decrypt = decryptClient.DecryptToString(encrypt);

Debug.Assert(ConfidentialDummyData == decrypt);

2.使用导出和导入, 自己生成的对称密钥,来加密和解密内容

ICryptoNet cryptoNet = new CryptoNetAes();
var file = new FileInfo(SymmetricKeyFile);
cryptoNet.ExportKeyAndSave(file);

Debug.Assert(File.Exists(file.FullName));

var encrypt = cryptoNet.EncryptFromString(ConfidentialDummyData);
        
ICryptoNet cryptoNetKeyImport = new CryptoNetAes(file);
var decrypt = cryptoNetKeyImport.DecryptToString(encrypt);

Debug.Assert(ConfidentialDummyData == decrypt);

3. 生成非对称 Rsa 密钥对,导出私钥和公钥,使用公钥加密和使用私钥解密

ICryptoNet cryptoNet = new CryptoNetRsa();

cryptoNet.ExportKeyAndSave(new FileInfo(PrivateKeyFile), true);
cryptoNet.ExportKeyAndSave(new FileInfo(PublicKeyFile), false);

Debug.Assert(File.Exists(new FileInfo(PrivateKeyFile).FullName));
Debug.Assert(File.Exists(new FileInfo(PublicKeyFile).FullName));

ICryptoNet cryptoNetPubKey = new CryptoNetRsa(new FileInfo(PublicKeyFile));
var encrypt = cryptoNetPubKey.EncryptFromString(ConfidentialDummyData);

ICryptoNet cryptoNetPriKey = new CryptoNetRsa(new FileInfo(PrivateKeyFile));
var decrypt = cryptoNetPriKey.DecryptToString(encrypt);

Debug.Assert(ConfidentialDummyData == decrypt);

4. 使用 X509 证书用公钥加密,然后用私钥解密

X509Certificate2? certificate = CryptoNetUtils.GetCertificateFromStore("CN=Maytham");

ICryptoNet cryptoNetWithPublicKey = new CryptoNetRsa(certificate, KeyType.PublicKey);
var encryptWithPublicKey = cryptoNetWithPublicKey.EncryptFromString(ConfidentialDummyData);

ICryptoNet cryptoNetWithPrivateKey = new CryptoNetRsa(certificate, KeyType.PrivateKey);
var decryptWithPrivateKey = cryptoNetWithPrivateKey.DecryptToString(encryptWithPublicKey);

Debug.Assert(ConfidentialDummyData == decryptWithPrivateKey);

 

http://www.jsqmd.com/news/28326/

相关文章:

  • Sqlserver Stuff+for xml+values 记录下,将多列数据有数据的合并为一个单元格
  • 2025 年精华液厂家企业品牌推荐排行榜,烟酰胺精华液,富勒烯精华液,复合酸精华液,抗衰老精华液,修护精华液,抗氧化精华液,保湿精华液,液态精华液公司推荐
  • 2025 年 11 月烟酰胺精华液,修护精华液,保湿精华液厂家最新推荐,技术实力与市场口碑深度解析
  • 2025 年 11 月富勒烯精华液,抗衰老精华液,抗氧化精华液厂家最新推荐,精准检测与稳定性能深度解析
  • 2025 年 11 月云南环保咨询,云南环评报告咨询,云南环评手续咨询最新推荐:精准检测与稳定性能深度解析
  • 2025 年 11 月云南环评资质咨询,云南环评批复咨询,云南环评手续咨询最新推荐:榜单透视与选购要点
  • 2025 年 11 月云南环保咨询,云南环评报告咨询,云南环评手续咨询最新推荐:聚焦高端定制需求与全案交付能力
  • 2025年11月上海装修公司排行榜:十强服务与性价比全面对比
  • 2025年11月上海装修公司口碑榜:千州领衔全维度对比评测
  • 2025 年 11 月云南环评资质咨询,云南环评报告咨询,云南环评批复咨询最新推荐:技术实力与市场口碑深度解析
  • 2025年11月上海装修公司实力榜:十家口碑数据横向评测
  • 2025年11月上海装修公司榜单:10强对比看服务与质保差异
  • 2025年11月上海装修公司综合榜:十家口碑排行深度评测
  • 从一个按钮实例入门CSS in JS之styled-components
  • 第二次算法实践作业
  • 致成熟的Java团队:AI浪潮中,无需换栈,只需“增量升级”
  • 统计表类图形的最大面积
  • 一对一视频源码,提高可扩展性的常用设计模式 - 云豹科技
  • 20251101 之所思 - 人生如梦
  • 深度学习基础理论————常见评价指标以及Loss Function - Big-Yellow
  • 模型量化操作————GPTQ和AWQ量化 - Big-Yellow
  • CSP-S前集训总结
  • 在AI技术快速实现创意的时代,挖掘用户真实需求成为关键突破点——某知名舆情分析系统需求洞察
  • 最短路模板
  • 时序数据库-InfluxDB - LLj
  • 2025年质量好的航空充气密封圈厂家最新推荐排行榜
  • 2025年质量好的非开挖电力管用户好评厂家排行
  • 2025年口碑好的酚醛胶行业内口碑厂家排行榜
  • 基于Java+Springboot+Vue开发的大学生反诈视频宣传系统源码+运行步骤
  • Docker 部署 openEuler 教程及常见问题解决