AES加密与解密的padding问题

简介:

首先说一下,在AES加密与解密的过程中如果需要加密的数据不是16的倍数的时候,需要对原来的数据做padding操作。

padding分为以下几种,不同的padding对加密与解密有影响,所以要保证padding的方式是一致的。

1、ANSI X.923

在ANSI X.923的方式下,先是填充00,最后一个字节填充padded的字节个数。

例子: | DD DD DD DD DD DD DD DD | DD DD DD 00 00 00 00 05 |

2、ISO 10126

在ISO 10126的方式下,先是填充随机值,最后一个字节填充padded的字节个数。

例子: | DD DD DD DD DD DD DD DD | DD DD DD 95 81 28 A7 05 |

3、PKCS7

在PKCS7的方式下,如果一共需要padded多少个字节,所有填充的地方都填充这个值。

例子: | DD DD DD DD DD DD DD DD | DD DD DD 05 05 05 05 05 |

4、ISO/IEC 7816-4

在ISO/IEC 7816-4方式下,第一个填充的字节是80,后面的都填充00。

例子: | DD DD DD DD DD DD DD DD | DD DD DD 80 00 00 00 00 |

5、Zero padding

在Zero padding方式下,每一个需要填充的字节都填00。

例子: | DD DD DD DD DD DD DD DD | DD DD DD 00 00 00 00 00 |


相关文章
|
2月前
|
Linux 数据安全/隐私保护 Windows
aes加密在linux下会生成随机key的解决办法
aes加密在linux下会生成随机key的解决办法
42 2
|
2月前
|
存储 算法 安全
【加密算法】AES对称加密算法简介
【加密算法】AES对称加密算法简介
|
2月前
|
PHP 数据安全/隐私保护
在PHP中使用AES进行加密和解密
在PHP中使用AES进行加密和解密
208 0
|
3天前
|
搜索推荐 安全 网络安全
AES 加密解密技术原理模式和实践
AES (Advanced Encryption Standard), aka Rijndael, is a symmetric encryption algorithm offering high security and speed over DES.
|
13天前
|
算法 安全 搜索推荐
AES(Advanced Encryption Standard)是一种广泛使用的对称密钥加密算法,由美国国家标准技术研究所(NIST)制定。
AES(Advanced Encryption Standard)是一种广泛使用的对称密钥加密算法,由美国国家标准技术研究所(NIST)制定。
|
1月前
|
Java PHP 数据安全/隐私保护
php和Java配合 aes
php和Java配合 aes加密
17 1
|
1月前
|
存储 安全 数据库
对称加密的日常实践应用:以AES为例的加密解密指南
**摘要:** 本文介绍了对称加密算法AES在数据安全中的应用,强调了其在文件、通信和数据库加密中的重要性。通过Python示例展示了如何使用`cryptography`库实现AES-256的加密和解密,涉及密钥生成、CBC模式及PKCS7填充。同时,提醒注意密钥管理、模式选择和填充方式的选择对加密安全性的影响。
53 1
|
24天前
|
算法 安全 网络安全
支付系统,网络安全06----支付安全---,机密性,加密算法,目前最流行的加密算法,AES加密算法,目前最流行的非对称加密算法RSA,对称加密和非对称加密的优缺点,非对称加密是基于非常复杂的数学算法
支付系统,网络安全06----支付安全---,机密性,加密算法,目前最流行的加密算法,AES加密算法,目前最流行的非对称加密算法RSA,对称加密和非对称加密的优缺点,非对称加密是基于非常复杂的数学算法
|
1月前
|
Java 数据安全/隐私保护
AES加密工具类(java)
AES加密工具类(java)
50 0
|
2月前
|
存储 算法 安全
加密解密AES(证件号、手机号)
加密解密AES(证件号、手机号)