irc-netcore-api/IRaCIS.Core.Infra.EFCore/Context/Converter/PartialEncryptionConverter.cs

22 lines
747 B
C#

using IRaCIS.Core.Infrastructure.Encryption;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Microsoft.EntityFrameworkCore.ValueGeneration;
namespace IRaCIS.Core.Infra.EFCore;
/// <summary>
/// 某列保留前面几位,后续加密
/// </summary>
public class PartialEncryptionConverter : ValueConverter<string, string>
{
private readonly int _unencryptedPrefixLength;
public PartialEncryptionConverter(int unencryptedPrefixLength)
: base(
plainText => AesEncryption.EncryptPartial(plainText, unencryptedPrefixLength),
encryptedText => AesEncryption.DecryptPartial(encryptedText, unencryptedPrefixLength))
{
_unencryptedPrefixLength = unencryptedPrefixLength;
}
}