Discuss / Java / 一些细节

一些细节

Topic source

Base64只是为了不显示乱码,join方法就是个拼接而已。


对于AES加密算法,不论使用哪种模式(如ECB、CBC等),密钥长度必须为16字节(128位)、24字节(192位)或32字节(256位)。这是由AES算法的规范确定的,以确保加密过程的安全性和正确性。如果密钥长度不符合这些要求,将无法正确使用AES算法进行加密。


CBC(Cipher Block Chaining)模式还需要一个16字节的初始向量(IV)。对于IV(Initialization Vector,初始化向量)参数,在AES算法中,它的长度是固定的为16字节(128位)。无论使用哪种模式(如CBC、CTR等),IV参数的长度都应为16字节。IV的作用是为了在每次加密操作时引入随机性,即使是在使用相同密钥加密相同数据的情况下也能产生不同的密文。

其实也就多了个随机数变量而已,注意随机数必须16字节,key必须为16/24/32字节

为保证安全,随机数必须使用SecureRandom生成,虽然也管不到你用Random

 byte[] iv=new byte[16]; new Random().nextBytes(iv); IvParameterSpec ivps = new IvParameterSpec(iv);

  • 1

Reply