首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java中AES算法的加密

Java中AES算法的加密
EN

Stack Overflow用户
提问于 2011-06-07 16:12:31
回答 2查看 3.4K关注 0票数 0

我做了一个包p,里面有一些整数和布尔值。数据包如下所示:

代码语言:javascript
复制
TCPPacket p=new TCPPacket(481,516,23,42,true,false,false,false,false,false,false,false,10,10);

如何在Java中使用AES对数据包进行加密?

EN

回答 2

Stack Overflow用户

发布于 2011-06-07 16:14:38

我建议您通读甲骨文的Using AES with Java Technology教程。

(第一次点击Google btw。)

票数 3
EN

Stack Overflow用户

发布于 2011-06-07 16:49:00

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

代码语言:javascript
复制
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;
        }

    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6262374

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档