ASP.NETCore如何实现一个支持长尾词的加密算法,且能高效处理大量数据流?
- 内容介绍
- 文章标签
- 相关推荐
本文共计758个文字,预计阅读时间需要4分钟。
在传统加密算法中,一个核心问题是无法有效确认密钥或密文的正确性。即使密钥或密文出错,也无法解密却不会报错。因此,我们需要设计一套原文化的校验算法。
传统的加密算法中,一个主要的问题是无法确认密钥或密文的有效性,也就是说,当密钥或密文错误时,照样能解密,但不报错。还需要我们制定一个一个原文的校验算法。
为了简化这个过程,一种方式是使用AEAD加密算法,和传统的加密相比,解密的时候会报错。省了检验的过程。AEAD算法中一个常用的实现是AES GCM算法,在.net core中已经有标准AEAD算法的实现。
public void Encrypt( byte[] nonce, byte[] plaintext, byte[] ciphertext, byte[] tag, byte[] associatedData = null);
这个接口第一感觉就是需要的参数比较多,首先构造函数中就需要传入一个key,然后加密函数就需要传入5个参数。
本文共计758个文字,预计阅读时间需要4分钟。
在传统加密算法中,一个核心问题是无法有效确认密钥或密文的正确性。即使密钥或密文出错,也无法解密却不会报错。因此,我们需要设计一套原文化的校验算法。
传统的加密算法中,一个主要的问题是无法确认密钥或密文的有效性,也就是说,当密钥或密文错误时,照样能解密,但不报错。还需要我们制定一个一个原文的校验算法。
为了简化这个过程,一种方式是使用AEAD加密算法,和传统的加密相比,解密的时候会报错。省了检验的过程。AEAD算法中一个常用的实现是AES GCM算法,在.net core中已经有标准AEAD算法的实现。
public void Encrypt( byte[] nonce, byte[] plaintext, byte[] ciphertext, byte[] tag, byte[] associatedData = null);
这个接口第一感觉就是需要的参数比较多,首先构造函数中就需要传入一个key,然后加密函数就需要传入5个参数。

