Table of Contents

Class CfgBuilderExtensions

Namespace
Apq.Cfg.Crypto
Assembly
Apq.Cfg.Crypto.dll

CfgBuilder 的加密脱敏扩展方法

public static class CfgBuilderExtensions
Inheritance
CfgBuilderExtensions
Inherited Members

Methods

AddAesCbcEncryption(CfgBuilder, string, string, Action<EncryptionOptions>?)

添加 AES-CBC 加密支持

public static CfgBuilder AddAesCbcEncryption(this CfgBuilder builder, string base64EncryptionKey, string base64HmacKey, Action<EncryptionOptions>? configure = null)

Parameters

builder CfgBuilder
base64EncryptionKey string
base64HmacKey string
configure Action<EncryptionOptions>

Returns

CfgBuilder

AddAesGcmEncryption(CfgBuilder, string, Action<EncryptionOptions>?)

添加 AES-GCM 加密支持

public static CfgBuilder AddAesGcmEncryption(this CfgBuilder builder, string base64Key, Action<EncryptionOptions>? configure = null)

Parameters

builder CfgBuilder
base64Key string
configure Action<EncryptionOptions>

Returns

CfgBuilder

AddAesGcmEncryptionFromEnv(CfgBuilder, string, Action<EncryptionOptions>?)

添加 AES-GCM 加密支持(从环境变量读取密钥)

public static CfgBuilder AddAesGcmEncryptionFromEnv(this CfgBuilder builder, string envVarName = "APQ_CFG_ENCRYPTION_KEY", Action<EncryptionOptions>? configure = null)

Parameters

builder CfgBuilder
envVarName string
configure Action<EncryptionOptions>

Returns

CfgBuilder

AddChaCha20Encryption(CfgBuilder, string, Action<EncryptionOptions>?)

添加 ChaCha20-Poly1305 加密支持

public static CfgBuilder AddChaCha20Encryption(this CfgBuilder builder, string base64Key, Action<EncryptionOptions>? configure = null)

Parameters

builder CfgBuilder
base64Key string
configure Action<EncryptionOptions>

Returns

CfgBuilder

AddEncryption(CfgBuilder, ICryptoProvider, Action<EncryptionOptions>?)

添加加密支持

public static CfgBuilder AddEncryption(this CfgBuilder builder, ICryptoProvider provider, Action<EncryptionOptions>? configure = null)

Parameters

builder CfgBuilder

配置构建器

provider ICryptoProvider

加密提供者

configure Action<EncryptionOptions>

加密选项配置委托

Returns

CfgBuilder

配置构建器实例,支持链式调用

Examples

var cfg = new CfgBuilder()
    .AddJsonFile("config.json", level: 0)
    .AddEncryption(new AesGcmCryptoProvider(key), options =>
    {
        options.EncryptedPrefix = "[ENCRYPTED]";
    })
    .Build();

AddRsaEncryption(CfgBuilder, string, Action<EncryptionOptions>?)

添加 RSA 加密支持(从 PEM 文件)

public static CfgBuilder AddRsaEncryption(this CfgBuilder builder, string pemFilePath, Action<EncryptionOptions>? configure = null)

Parameters

builder CfgBuilder
pemFilePath string
configure Action<EncryptionOptions>

Returns

CfgBuilder

AddRsaEncryptionFromPem(CfgBuilder, string, Action<EncryptionOptions>?)

添加 RSA 加密支持(从 PEM 字符串)

public static CfgBuilder AddRsaEncryptionFromPem(this CfgBuilder builder, string pem, Action<EncryptionOptions>? configure = null)

Parameters

builder CfgBuilder
pem string
configure Action<EncryptionOptions>

Returns

CfgBuilder

AddSensitiveMasking(CfgBuilder, Action<MaskingOptions>?)

添加敏感值脱敏

public static CfgBuilder AddSensitiveMasking(this CfgBuilder builder, Action<MaskingOptions>? configure = null)

Parameters

builder CfgBuilder

配置构建器

configure Action<MaskingOptions>

脱敏选项配置委托

Returns

CfgBuilder

配置构建器实例,支持链式调用

Examples

var cfg = new CfgBuilder()
    .AddJsonFile("config.json", level: 0)
    .AddSensitiveMasking(options =>
    {
        options.MaskString = "****";
        options.VisibleChars = 2;
    })
    .Build();

AddSm4Encryption(CfgBuilder, string, Sm4Mode, Action<EncryptionOptions>?)

添加 SM4 国密加密支持

public static CfgBuilder AddSm4Encryption(this CfgBuilder builder, string base64Key, Sm4Mode mode = Sm4Mode.CBC, Action<EncryptionOptions>? configure = null)

Parameters

builder CfgBuilder
base64Key string
mode Sm4Mode
configure Action<EncryptionOptions>

Returns

CfgBuilder

AddTripleDesEncryption(CfgBuilder, string, Action<EncryptionOptions>?)

添加 Triple DES 加密支持(仅用于遗留系统兼容)

[Obsolete("Triple DES is considered weak. Use AES-GCM for new projects.")]
public static CfgBuilder AddTripleDesEncryption(this CfgBuilder builder, string base64Key, Action<EncryptionOptions>? configure = null)

Parameters

builder CfgBuilder
base64Key string
configure Action<EncryptionOptions>

Returns

CfgBuilder