Encryption
3.0.0 页面说明
- 3.0.0 说明:当前页已重写为
3.x的加密工具主题页。- 当前组件入口: Aegis.Security.Encryption。
Aegis.Security.Encryption 提供的是一组直接调用的加密扩展方法。它适合在业务代码里快速完成加解密、签名验签和摘要计算。
快速开始
安装包
dotnet add package Aegis.Security.Encryption
引用命名空间
using Aegis.Security.Encryption.Extensions;
常见能力选型
| 能力 | 默认建议 |
|---|---|
| 对称加密 | AES |
| 旧系统兼容 | DES |
| 国密对称 | SM4 |
| 非对称加密 / 签名 | RSA |
| 国密非对称 / 签名 | SM2 |
| 摘要 | SM3 |
最常见的使用方式
AES
var plainText = "这是需要加密的敏感数据";
var key = "1234567890123456";
var iv = "abcdefghijklmnop";
var cipher = plainText.AESEncrypt(key, iv);
var text = cipher.AESDecrypt(key, iv);
DES
var cipher = "敏感数据".DESEncrypt("12345678", "abcdefgh");
var text = cipher.DESDecrypt("12345678", "abcdefgh");
SM4
var keyHex = SM4Extensions.GenerateSM4KeyHex();
var ivHex = SM4Extensions.GenerateSM4IVHex();
var cipher = "国密数据".SM4Encrypt(keyHex, ivHex);
var text = cipher.SM4Decrypt(keyHex, ivHex);
RSA
var (privateKey, publicKey) = RSAExtensions.GenerateRSAKeyPair();
var cipher = "hello".RSAEncrypt(publicKey);
var text = cipher.RSADecrypt(privateKey);
RSA 签名验签
var (privateKey, publicKey) = RSAExtensions.GenerateRSAKeyPair();
var signature = "hello".RSASign(privateKey);
var verified = "hello".RSAVerify(signature, publicKey);
SM3 摘要
var hash = "hello".SM3Encrypt();
边界与限制
这是工具包,不是自动装配组件
当前能力不需要 Component.deps.json。
你只需要安装包并引用命名空间。
新项目默认优先 AES
如果没有历史兼容或国密要求,默认优先 AES。
DES 主要用于兼容旧系统。
密钥治理不在当前文档展开
这组文档只讲算法调用。
密钥、私钥、公钥、IV 的保管和轮换,应该由项目自己的安全方案负责。
常见问题
为什么这里没有组件声明
因为它本质上是方法扩展集合,不是运行时自动装配型组件。
国密场景该看哪几类能力
优先看:
SM2SM3SM4
我应该把密钥写进代码里吗
不建议。
文档里的密钥只是示例,不代表正式项目做法。