首页 > 其他分享 >ef core加密存储数据,如身份证号

ef core加密存储数据,如身份证号

时间:2024-05-02 23:11:07浏览次数:21  
标签:core set get ef 身份证号 private readonly ._ public

一、新建项目,安装nuget

<PackageReference Include="V6.EntityFrameworkCore.DataEncryption" Version="5.0.0" />

二、本示例采用:AES+256bits(Can use a 128bits, 192bits or 256bits key)

 CipherMode mode = CipherMode.CBC, PaddingMode padding = PaddingMode.PKCS7

三、使用方法

public class Demo_DataEncryption
    {
        /// <summary>
        /// 名称
        /// </summary>
        [StringLength(50)]
        public string Name { get; set; }
 
        /// <summary>
        /// 移动电话
        /// </summary>
 
        [StringLength(50)]
        [Encrypted]
        public string TelPhone { get; set; }
 
    }
public class DatabaseContext : DbContext
{
    // Get key and IV from a Base64String or any other ways.
    // You can generate a key and IV using "AesProvider.GenerateKey()"
    private readonly byte[] _encryptionKey = Encoding.UTF8.GetBytes("..."); 
    private readonly byte[] _encryptionIV = Encoding.UTF8.GetBytes("...");
    private readonly IEncryptionProvider _provider;
 
    public DbSet<Demo_DataEncryption> DataEncryptions { get; set; }
    
    public DatabaseContext(DbContextOptions options)
        : base(options)
    {
        this._provider = new AesProvider(this._encryptionKey, this._encryptionIV);
    }
    
    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.UseEncryption(this._provider);
    }
}

 

标签:core,set,get,ef,身份证号,private,readonly,._,public
From: https://www.cnblogs.com/valu/p/18170717

相关文章

  • Makefile
    编译工具及构建工具介绍在之前的课程中,都是直接使用gcc对代码进行编译,这对简单的工程是可以的,但当我们遇到复杂的工程时,每次用gcc等编译工具去操作就会显得很低效。因此make工具就出现了,make的出现是为了解决手动编译和链接大型工程的问题,它可以避免重复的工作,提高效率,保证正确......
  • Codeforces 1044F DFS
    考虑到存在方案使得以\(u\)为起点还能走出原树的条件。能发现是以\(u\)为根,在原树上新添加的边只会是返祖边而不会有横叉边。这是因为如果有横叉边就肯定会在遍历到一边的点后先通过这条边走到另一边的点,就算上了这条边就不是原树了。那么考虑\((x,y)\),合法的\(u\)需要......
  • 《Effective C++》第三版-4. 设计与声明(Design and Declarations)
    目录条款17:让接口容易被正确使用,不易被误用(Makeinterfaceseasytousecorrectlyandhardtouseincorrectly)限制类型和值规定能做和不能做的事提供行为一致的接口条款19:设计class犹如设计type(Treatclassdesignastypedesign)条款20:宁以pass-by-reference-to-const替换pass......
  • .NET CORE 完美支持AOT 的 ORM SqlSugar 教程
    1、AOT适合场景Aot适合工具类型的项目使用,优点禁止反编,第一次启动快,业务型项目或者反射多的项目不适合用AOT AOT更新记录:实实在在经过实践的AOTORM5.1.4.117+支持AOT5.1.4.123+支持CodeFirst和异步方法5.1.4.129-preview12+修复db.Unionallbug5.1.4.129-preview17......
  • Educational Codeforces Round 165 (Rated for Div. 2) C. Minimizing the Sum题解
    题意CodeforcesRound809(Div.2)D1.ChoppingCarrots(EasyVersion)给你两个整数\(n(1\len\le3e5),k(0\lek\le10)\),一个数组\(a(1\lea_i\le10^9)\)。你可以进行如下操作最多\(k\)次:选定一个数\(i(1\lei\len)\),让其变为相邻的数(变为\(a_{i-1},a_{i......
  • efcore全局查询过滤器
    我们删除实体时,平常不需要物理删除,而是软删除,软删除有什么好处呢?它能够在下次创建实体时快速恢复实体的信息,平时我们使用IsDeleted字段来代表软删除,以下是一个示例publicclassPost{publicintPostId{get;set;}publicstringTitle{get;set;}public......
  • Codeforces Round 942 (Div. 2) (A - E)
    A.ContestProposal如果\(a_i>b_i\),则答案加一,令\(\foralli\in[i+1,n],\a_i\leftarrowa_{i-1}\)。submissionB.CoinGames题意:\(n\)枚硬币围成一圈,给出初始硬币状态,每取出一枚正面朝上的硬币并翻转相邻的两枚,没有正面则对方获胜,问先手胜负。令当前正面硬......
  • Codeforces Round 942 (Div. 2)
    CodeforcesRound942(Div.2)A.ContestProposal题意:有n个题目,每个题目的难度为a[i],要求每个题目的难度不大于对应的b[i],每次可以添加一个题目并且删去最难的题目,求最多能添加几个题目思路:暴力枚举即可,只要a[i]大于b[i],就把a[n]改为b[i],然后重新排序voidsolve(){int......
  • aardio封装库) 微软开源的js引擎(ChakraCore)
    前言做爬虫肯定少不了JavaScript引擎的使用,比如在Python中现在一般用pyexecjs2来执行JavaScript代码,另外还有一些其他执行JavaScript的库:https://github.com/eight04/node_vm2:rpc调用nodejs,需要安装nodehttps://github.com/eight04/deno_vm:rpc调用deno,需要安装denohttps:......
  • Hive中的FileFormat、RowFormat和SerDe总结
    Hive如何读写数据?我们知道,hive表的数据是存储在hdfs文件系统中的。那么Hive是如何将hdfs上的数据文件,映射成一张张表呢,今天就来理清楚这个问题。官方文档中对于Hive读数据的流程如下: 精炼一下:Hive的执行引擎首先通过InputFormat读取一条一条的数据记录,接着调用Serde.destr......