字符串加密
ABP提供字符串加密功能,支持对字符串进行加密和解密操作。
安装说明
该包已默认包含在启动模板中。大多数情况下,您无需手动安装。
如需安装,建议使用 ABP CLI 进行包管理。
使用ABP CLI安装
在项目文件夹(.csproj文件所在目录)打开命令行窗口,输入以下命令:
abp add-package Volo.Abp.Security
手动安装
如需手动安装:
添加Volo.Abp.Security NuGet包至项目:
dotnet add package Volo.Abp.Security在模块的依赖列表中添加
AbpSecurityModule:[DependsOn( //...其他依赖项 typeof(AbpSecurityModule) // <-- 按此方式添加模块依赖 )] public class YourModule : AbpModule { }
使用字符串加密功能
所有加密操作均通过IStringEncryptionService接口提供。您可通过依赖注入使用该服务。
public class MyService : DomainService
{
protected IStringEncryptionService StringEncryptionService { get; }
public MyService(IStringEncryptionService stringEncryptionService)
{
StringEncryptionService = stringEncryptionService;
}
public string Encrypt(string value)
{
// 加密字符串
return StringEncryptionService.Encrypt(value);
}
public string Decrypt(string value)
{
// 解密字符串
return StringEncryptionService.Decrypt(value);
}
}
使用自定义密码短语
IStringEncryptionService方法提供带默认值的passPharase参数,不传递该参数时将使用默认密码短语。
// 使用默认密码短语
var encryptedValue = StringEncryptionService.Encrypt(value);
// 使用自定义密码短语
var encryptedValue = StringEncryptionService.Encrypt(value, "MyCustomPassPhrase");
// 加密与解密需使用相同参数
var decryptedValue = StringEncryptionService.Decrypt(value, "MyCustomPassPhrase");
使用自定义盐值
IStringEncryptionService方法提供带默认值的salt参数,不传递该参数时将使用默认盐值。
// 使用默认盐值
var encryptedValue = StringEncryptionService.Encrypt(value);
// 使用自定义盐值
var encryptedValue = StringEncryptionService.Encrypt(value, salt: Encoding.UTF8.GetBytes("MyCustomSalt"));
// 加密与解密需使用相同参数
var decryptedValue = StringEncryptionService.Decrypt(value, salt: Encoding.UTF8.GetBytes("MyCustomSalt"));
字符串加密配置选项
可通过AbpStringEncryptionOptions类型配置默认值:
Configure<AbpStringEncryptionOptions>(opts =>
{
opts.DefaultPassPhrase = "MyStrongPassPhrase";
opts.DefaultSalt = Encoding.UTF8.GetBytes("MyStrongSalt");
opts.InitVectorBytes = Encoding.UTF8.GetBytes("YetAnotherStrongSalt");
opts.Keysize = 512;
});
DefaultPassPhrase: 加解密默认密码短语。出于安全考虑建议修改默认值。
默认值:gsKnGZ041HLL4IM8DefaultSalt: 加解密过程中使用的盐值。
默认值:Encoding.ASCII.GetBytes("hgt!16kl")InitVectorBytes: 用于PasswordDeriveBytes函数调用的"盐"值。
IV字节大小必须满足(keysize/8),默认keysize为256位,因此IV必须为32字节。使用16字符字符串转换为字节数组后可获得32字节。
默认值:Encoding.ASCII.GetBytes("jkE49230Tf093b42")Keysize: 加密算法的密钥长度常量。
默认值:256
抠丁客


