跳到主要内容
版本:3.0.0

加密工具(Aegis.Security.Encryption)

Aegis.Security.Encryption 是一组纯代码调用型加密工具包。它主要通过扩展方法提供对称加密、非对称加密、签名和摘要能力,不依赖组件声明,也不要求额外中间件。

组件概览

字段说明
组件名称加密工具
真实类库Aegis.Security.Encryption
组件定位加解密、签名与摘要工具包
引入方式安装 NuGet,直接引用命名空间并调用扩展方法
是否需要 Component.deps.json
核心能力AES、DES、SM4、RSA、SM2、DSA、SM3
常见入口Aegis.Security.Encryption.Extensions

什么时候要用它

适合场景:

  • 需要对敏感文本或业务密文做加解密
  • 需要做签名验签
  • 需要做摘要校验
  • 需要兼容国密场景

最小可运行路径

第一步:安装包

dotnet add package Aegis.Security.Encryption

第二步:引用命名空间

using Aegis.Security.Encryption.Extensions;

第三步:直接调用扩展方法

var plainText = "这是需要加密的敏感数据";
var key = "1234567890123456";
var iv = "abcdefghijklmnop";

var cipher = plainText.AESEncrypt(key, iv);
var text = cipher.AESDecrypt(key, iv);

这组能力怎么选

能力适合什么场景
AES默认对称加密首选
DES兼容旧系统,不建议新项目默认使用
SM4国密对称加密
RSA常见非对称加密与签名
SM2国密非对称加密与签名
DSA兼容特定签名场景
SM3国密摘要

最常见的使用方式

AES

var cipher = plainText.AESEncrypt(key, iv);
var text = cipher.AESDecrypt(key, iv);

DES

var cipher = plainText.DESEncrypt("12345678", "abcdefgh");
var text = cipher.DESDecrypt("12345678", "abcdefgh");

SM4

var keyHex = SM4Extensions.GenerateSM4KeyHex();
var ivHex = SM4Extensions.GenerateSM4IVHex();

var cipher = plainText.SM4Encrypt(keyHex, ivHex);
var text = cipher.SM4Decrypt(keyHex, ivHex);

RSA 加解密

var (privateKey, publicKey) = RSAExtensions.GenerateRSAKeyPair();

var cipher = plainText.RSAEncrypt(publicKey);
var text = cipher.RSADecrypt(privateKey);

RSA 签名验签

var (privateKey, publicKey) = RSAExtensions.GenerateRSAKeyPair();

var signature = plainText.RSASign(privateKey);
var verified = plainText.RSAVerify(signature, publicKey);

SM3 摘要

var hash = plainText.SM3Encrypt();

边界与限制

这是代码调用型工具包

当前组件不通过 Component.deps.json 装配。
也就是说你只需要:

  • 安装包
  • 引用命名空间
  • 直接调用扩展方法

密钥管理不属于当前组件

当前组件负责“算法调用”,不负责“密钥治理”。
正式环境下,密钥、IV、私钥、公钥应该由项目自己的安全方案管理。

新项目默认优先级

更推荐:

  • 对称加密优先 AES
  • 非对称优先 RSA
  • 国密场景再选 SM2 / SM3 / SM4

接入后怎么确认已经生效

可以这样确认:

  • 工具方法可以正常调用
  • 加密后能解密回原文
  • 签名后可以验签通过

常见问题

为什么这里没有组件声明

因为它本质上是工具方法集合,不是需要框架自动装配的运行时组件。

新项目默认该选 AES 还是 DES

默认选 AES。
DES 更偏兼容旧系统。

文档里为什么没有展开密钥管理方案

因为密钥管理属于项目安全治理,不属于当前组件自身职责。

配套阅读