网站建设期间注意事项,石家庄网络平台推广,一达通外贸综合服务平台登录,南京发布最新通告我在客户端生成初始化向量#xff0c;其中消息被加密#xff0c;然后与解密向量一起发送到服务器。Java AES加密 - 在客户端和服务器之间发送初始化向量客户端代码#xff1a;String key1 1234567812345678;byte[] key2 key1.getBytes();SecretKeySpec secret…我在客户端生成初始化向量其中消息被加密然后与解密向量一起发送到服务器。Java AES加密 - 在客户端和服务器之间发送初始化向量客户端代码String key1 1234567812345678;byte[] key2 key1.getBytes();SecretKeySpec secret new SecretKeySpec(key2, AES);Cipher cipher Cipher.getInstance(AES/CBC/PKCS5Padding);cipher.init(Cipher.ENCRYPT_MODE, secret);byte[] encrypted cipher.doFinal(msg.getBytes(StandardCharsets.UTF_8));byte[] iv cipher.getIV();String text DatatypeConverter.printBase64Binary(encrypted);System.out.println(Encrypted info: text);bytebuf ByteBuffer.allocate(1024);bytebuf.clear();// send ivbytebuf.put(iv);bytebuf.flip();while(bytebuf.hasRemaining()) {nBytes client.write(bytebuf);System.out.println(Iv sent!);}bytebuf.clear();bytebuf.put(text.getBytes());bytebuf.flip();while(bytebuf.hasRemaining()) {nBytes client.write(bytebuf);}服务器代码LOGGER.info(Confirming write);byte[] iv buf.array();LOGGER.info(Data packet found as {}, iv);LOGGER.info(Confirming write);String data new String(buf.array());LOGGER.info(Data packet found as {}, data);IvParameterSpec ivspec new IvParameterSpec(iv);String key1 1234567812345678;byte[] key2 key1.getBytes();SecretKeySpec secret new SecretKeySpec(key2, AES);Cipher cipher Cipher.getInstance(AES/CBC/PKCS5Padding);cipher.init(Cipher.DECRYPT_MODE, secret, ivspec);byte[] encrypted DatatypeConverter.parseBase64Binary(data);byte[] decrypted cipher.doFinal(encrypted);System.out.println(Decrypted Info: new String(decrypted, StandardCharsets.UTF_8));我得到以下异常java.security.InvalidAlgorithmParameterException: Wrong IV length: must be 16 bytes long看来如果我分配例如1024个字节Ť ○缓冲液32字节大小的[]被发送到服务器而是一个1024字节大小的[]将在服务器上生成Data packet found as [-55, 119, 34, -19, -33, -20, -67, -77, 54, -111, 14, 94, 73, 98, 34, -7, 0, 0, 0, 0, 0, 0,..................我是否连上了正确的道路0发现了问题我将编辑回答解决方案 –