快捷搜索:  汽车  科技

aes算法最终确定采用什么算法:每天一算法 什么是AES算法

aes算法最终确定采用什么算法:每天一算法 什么是AES算法2.按照选择的填充方式来填充最后一个明文块。1.把明文按照128bit拆分成若干个明文块。2.填充明文时,如果明文长度原本就是16字节的整数倍,那么除了NoPadding以外,其他的填充方式都会填充一组额外的16字节明文块。以上就是AES的基本概念。但我们是有追求的程序员,不能知其然不知其所以然。下面来给大家讲一讲AES算法的底层原理。在这里我们重新梳理一下:

aes算法最终确定采用什么算法:每天一算法 什么是AES算法(1)

1. kgen.init传入的第一个参数128决定了密钥的长度是128bit

2. Cipher.getInstance("AES/CBC/NoPadding")决定了AES选择的填充方式是NoPadding,工作模式是CBC模式。

几点补充:

1.我们在调用封装好的AES算法时,表面上使用的Key并不是真正用于AES加密解密的密钥,而是用于生成真正密钥的“种子”。

2.填充明文时,如果明文长度原本就是16字节的整数倍,那么除了NoPadding以外,其他的填充方式都会填充一组额外的16字节明文块。

以上就是AES的基本概念。但我们是有追求的程序员,不能知其然不知其所以然。下面来给大家讲一讲AES算法的底层原理

aes算法最终确定采用什么算法:每天一算法 什么是AES算法(2)

aes算法最终确定采用什么算法:每天一算法 什么是AES算法(3)

aes算法最终确定采用什么算法:每天一算法 什么是AES算法(4)

在这里我们重新梳理一下:

1.把明文按照128bit拆分成若干个明文块。

2.按照选择的填充方式来填充最后一个明文块。

3.每一个明文块利用AES加密器和密钥,加密成密文块。

4.拼接所有的密文块,成为最终的密文结果。

aes算法最终确定采用什么算法:每天一算法 什么是AES算法(5)

猜您喜欢: