Java使用AES加解密

AES是一种对称的加密算法,可基于相同的密钥进行加密和解密。Java采用AES算法进行加解密的逻辑大致如下:

  • 生成/获取密钥
  • 加/解密

1.1生成密钥

密钥的生成是通过KeyGenerator来生成的。通过获取一个KeyGenerator实例,然后调用其generateKey()方法即可生成一个SecretKey对象。

1.2密钥的存储

密钥SecretKey里面最核心的内容就是其中的密钥对应的字节数组,可以通过SecretKey的getEncoded()方法获取。然后把它存储起来即可。最简单的方式就是直接写入一个文件中。

1.3获取存储的密钥

获取存储的密钥的核心是把密钥的字节数组转换为对应的SecretKey。这可以通过SecretKeySpec来获取,其实现了SecretKey接口,然后构造参数里面将接收密钥的字节数组。

1.4加解密

Java采用AES算法进行加解密的过程是类似的,具体如下:
1、指定算法,获取一个Cipher实例对象
2、生成/读取用于加解密的密钥
3、用指定的密钥初始化Cipher对象,同时指定加解密模式,是加密模式还是解密模式。
4、通过Cipher的dofinal(byte[] var1)进行最终的加解密操作。
"AES/CBC/PKCS5Padding":"算法/模式/补码方式" 
"DES/ECB/PKCS5Padding":"算法/模式/补码方式" 
1、是DES,不是3DES。
2、分组模式是ECB,所以不需要初始化向量。
3、填充模式是PKCS5Padding。

参考链接
iOS和java后端AES加解密

你可能感兴趣的:(Java使用AES加解密)