Java 中的加密算法: AES

加密算法

加密算法通常分为对称加密算法和非对称加密算法:

  • 对称加密算法(symmetric-key cryptography):加密和解密时使用相同的密钥。常用的对称加密算法有 DES、AES。
  • 非对称加密算法(asymmetric-key cryptography):加密和解密使用不同的密钥,例如公钥加密的内容只能用私钥解密,所以又称为公钥加密算法(public-key cryptography)。使用最广泛的非对称加密算法是 RSA 算法。

两者有不同的使用场景,而且经常会一起搭配起来使用,例如 SSL/TLS 协议就结合了对称加密算法和非对称加密算法。

本文主要介绍最常用的对称加密算法:AES。

AES

AES 全称 Advanced Encryption Standard,是一种对称加密算法。AES 的出现主要是用来取代 DES 加密算法,因为 AES 的安全性相对更高。

AES 使用非常广泛,可以说只要上网,无论是使用手机 APP 还是 Web 应用,几乎都离不开 AES 加密算法。因为目前大部分网站,包括手机 APP 后端接口,都已经使用 HTTPS 协议,而 HTTPS 在数据传输阶段大部分都是使用 AES 对称加密算法。

在学习 AES 之前,首先要知道以下规则:

  • AES 是一种区块加密算法,加密时会将原始数据按大小拆分成一个个区块进行加密,区块大小固定为 128 比特(即 16 字节)
  • AES 密钥长度可以是 128、192 或 256 比特(即 16、25 或 32
上一篇:[加密]-对称加密算法AES


下一篇:对称加密算法:长期有效的加密(下)