跳到主要内容
版本:3.0.0

Encryption

3.0.0 页面说明

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 的保管和轮换,应该由项目自己的安全方案负责。

常见问题

为什么这里没有组件声明

因为它本质上是方法扩展集合,不是运行时自动装配型组件。

国密场景该看哪几类能力

优先看:

  • SM2
  • SM3
  • SM4

我应该把密钥写进代码里吗

不建议。
文档里的密钥只是示例,不代表正式项目做法。

继续阅读