22 lines
		
	
	
		
			747 B
		
	
	
	
		
			C#
		
	
	
			
		
		
	
	
			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;
 | 
						|
    }
 | 
						|
}
 |