首页 > 其他分享 >AES加密时,同时设置Key和KeySize 与 仅设置Key 加密得到的结果不同

AES加密时,同时设置Key和KeySize 与 仅设置Key 加密得到的结果不同

时间:2024-07-31 10:10:30浏览次数:16  
标签:加密 Key value KeyValue KeySize 设置

事故现场

KeySize应该是Key的长度*8(单位是bit)

当我设置Key为长度32的字节数组后,(断点可以看到此时KeySize=256)加密结果符合期望;
当我既设置Key(未修改),又设置KeySize=256时,加密结果不同.

源码

        public virtual byte[] Key
        {
            get
            {
                if (KeyValue == null)
                    GenerateKey();
                return KeyValue.CloneByteArray()!;
            }
 
            set
            {
                ArgumentNullException.ThrowIfNull(value);
 
                long bitLength = value.Length * 8L;
                if (bitLength > int.MaxValue || !ValidKeySize((int)bitLength))
                    throw new CryptographicException(SR.Cryptography_InvalidKeySize);
 
                // must convert bytes to bits
                this.KeySize = (int)bitLength;
                KeyValue = value.CloneByteArray();
            }
        }
 
        public virtual int KeySize
        {
            get
            {
                return KeySizeValue;
            }
 
            set
            {
                if (!ValidKeySize(value))
                    throw new CryptographicException(SR.Cryptography_InvalidKeySize);
 
                KeySizeValue = value;
                KeyValue = null;
            }
        }

设置KeySize后,会重置Key(KeyValue = null

总结

要么仅设置Key,要么仅设置KeySize

标签:加密,Key,value,KeyValue,KeySize,设置
From: https://www.cnblogs.com/sigeer0-o/p/18333952

相关文章

  • 如何在 pandas 中设置列​​标题的样式?
    假设我有一个带有列标题“A”和“B”的2x2DataFrame:importpandasaspddata_style=[['background-color:#fdfd96',''],['','background-color:#fdfd96']]df=pd.DataFrame([[1,2],[3,4]],columns=["A",&qu......
  • 如何遍历Python字典同时避免KeyErrors?
    解析大型JSON时,某些键可能仅在某些情况下存在,例如出现错误时。从服务器的API获取200OK的情况并不少见,但是您得到的响应包含应检查的错误。处理此问题的最佳方法是什么?我知道使用类似||之类的东西。|是处理KeyError的一种方法。get()但是如果......
  • 企知道 接口逆向:AES加密
    ......
  • 前后端数据的交互--如何实现数据加密?--02
    数据加密是保护数据安全的重要手段,通过加密技术,我们可以确保即使数据被窃取,也无法直接读取其中的信息。本文将介绍三种常见的加密方法:对称加密、非对称加密以及数据库加密,并展示如何在实际项目中实现这些加密技术。1.对称加密对称加密算法使用相同的密钥进行加密和解密。AES(Adv......
  • Atcoder 356 C - Keys 二进制枚举
    原题链接:https://atcoder.jp/contests/abc356/tasks/abc356_c C-Keys:问题陈述您有 N 个编号为1,2,…,N 的密钥。其中一些是真钥匙,其他都是假钥匙。有一扇门,门X,你可以插入任意数量的钥匙。只有插入至少 K 把真钥匙,X门才会打开。你已经对这些钥匙进行了 M 次......
  • 企业常用七款源代码加密软件,超好用的源代码加密软件分享
    随着企业数字化转型的加速,源代码作为企业的核心资产,其安全性越来越受到重视。源代码加密软件作为保护企业代码资产的重要手段,在市场上涌现出众多优秀的产品。本文将介绍七款企业常用的源代码加密软件,帮助企业更好地选择适合自己的解决方案1.安秉网盾安秉网盾通过驱动层加密......
  • 企业常用源代码加密软件,2024五款源代码加密软件推荐
    在现代企业中,源代码是核心资产之一,其安全性对企业的竞争力和创新能力至关重要。为了防止代码泄露和未经授权的访问,许多企业选择使用源代码加密软件。以下是2024年五款值得推荐的源代码加密软件,为企业提供可靠的安全保障。1.安秉源代码加密软件安秉源代码加密软件是一款专为......
  • 不妨来探讨一下数据加密与解密
    常见的加密与解密一般有三大类:1.对称加密算法:加密和解密使用同一个密钥-----单密钥加密DES、AES2.不对称加密算法:加密和解密使用不同的钥-----(公钥,私钥)---安全性高3.RSA哈希算法:MD5SHA256     2013年,我曾经做过一次对称加密算法的详细解释与应用,当然我编写的软......
  • java @Cacheable生成的redisKey,出现两个连续的冒号::
    1、参考基于redis2.1.6实现springcache生成的key多出一个冒号2、解决需要对key进行处理,【重点】是computePrefixWith方法config=config.computePrefixWith(cacheName->{returncacheName+StrUtil.COLON;});以下是完整代码实现CacheK......
  • 设置mybatis 是否打印日志
    @Bean(name="dbzyqsV102SqlSessionFactory")//@Qualifier表示查找Spring容器中名字为blogDataSource的对象publicSqlSessionFactorydbzyqsV102SqlSessionFactory(@Qualifier("dbzyqsV102DataSource")DataSourcedatasource)throwsEx......