用Java中的AES算法加密

我创建了一个包p,包含一些整数和布尔值。 包如下:

TCPPacket p=new TCPPacket(481,516,23,42,true,false,false,false,false,false,false,false,10,10); 

如何用Java加密数据包?

我建议你阅读教程中使用 Oracle的Java技术 。

(首先点击Google btw。)

这是一些可以帮助您入门的示例代码。 它使用AES(128)来加密和解密对象(使用SealedObject )。

 public class App { public static void main(String[] args) throws Exception { TCPPacket packet = new TCPPacket(481, 516, 23, 42, true, false, false, false, false, false, false, false, 10, 10); final char[] password = "secretpass".toCharArray(); final byte[] salt = "a9v5n38s".getBytes(); // Create key SecretKeyFactory factory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1"); KeySpec spec = new PBEKeySpec(password, salt, 1024, 128); SecretKey tmp = factory.generateSecret(spec); SecretKey secret = new SecretKeySpec(tmp.getEncoded(), "AES"); // Init ciphers Cipher cipher = Cipher.getInstance("AES"); Cipher dcipher = Cipher.getInstance("AES"); cipher.init(Cipher.ENCRYPT_MODE, secret); dcipher.init(Cipher.DECRYPT_MODE, secret); // Encrypt packet SealedObject so = new SealedObject(packet, cipher); // Decrypt packet TCPPacket decryptedPacket = (TCPPacket) so.getObject(dcipher); System.out.println(decryptedPacket.first); } private static class TCPPacket implements Serializable { private int first; public TCPPacket(final int _first, final int i1, final int i2, final int i3, final boolean b, final boolean b1, final boolean b2, final boolean b3, final boolean b4, final boolean b5, final boolean b6, final boolean b7, final int i4, final int i5) { first = _first; } public int getFirst() { return first; } } }