AES加密参数介绍

您所在的位置:网站首页 vivoy93s4+128参数 AES加密参数介绍

AES加密参数介绍

2024-07-12 09:54| 来源: 网络整理| 查看: 265

背景

最近因为某个管理系统的开发,需要进行异构平台的数据通信。用到了AES加密。但是,AES加密涉及几个参数,不是简单的输入源数据和密码就可以得到结果。跨平台联合调试的时候,基本上都会碰到这个问题。

一、AES加密

AES和DES是常见的对称加密算法。这里不多说了。

二、AES加密的问题

其实也不能说是问题,而是刚开始使用的时候会有一些误区:以为使用相同的密码进行加密,就能在不同平台上得到同样的结果。

 

很明显,上面的理解是不对的。

三、AES的参数

本文的AES实现,默认指的是Rijndael。 1. key length(密钥位数,密码长度) 2. key (密钥,密码) 3. IV (向量) 4. mode (加密模式) 5. padding (填充方式)

 

异构系统通信的时候,必然会遇到这个问题。c、c++、lua、csharp、java、php、go、python这些语言自带或者依赖的第三方aes库,都可能默认使用不同的参数。

所以,异构系统使用aes进行通信,必须首先确保上面的五个参数是一模一样的。

四、参数的意义 key length(密钥位数,密码长度) AES128,AES192,AES256(128 位、192 位或 256 位) 128位对应的是16个字节,所以部分平台库上,会使用16个字符或者长度为16的字符串来做密码。key (密钥,密码) key指的就是密码了,AES128就是128位的,如果位数不够,某些库可能会自动填充到128。IV (向量) IV称为初始向量,不同的IV加密后的字符串是不同的,加密和解密需要相同的IV。mode (加密模式) AES分为几种模式,比如ECB,CBC,CFB等等,这些模式除了ECB由于没有使用IV而不太安全,其他模式差别并没有太明显。padding (填充方式) 对于加密解密两端需要使用同一的PADDING模式,大部分PADDING模式为PKCS5, PKCS7, NOPADDING。


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3