【问题标题】:Partial Encryption and Serialization of Java objectJava对象的部分加密和序列化
【发布时间】:2011-12-25 23:57:48
【问题描述】:

想要加密我的 Java 对象的一部分并在通过网络发送之前对其进行序列化。

更清楚地说,我有一个工作流程,它的每个阶段都会吐出分支数据。我希望它的一部分(几个类变量)被加密,一部分是公开的。我有一个基本的序列化程序,我可以在序列化之前覆盖它以包含这个加密部分。有什么建议吗?

我正在考虑在这些变量上添加一些注释,例如 @encypt,然后在对其进行序列化之前对其进行加密。但是,我不确定如何实现这个注释的东西。有什么指点吗?

class Foo{
    private String username;
    @encrypt
    private String password;
}

class customSerializer{

    writeExternal(Foo object){
        encrypt(object);
        serialize(encryptedObject);
    }
}

encrypt(Foo object){
    // Identify variables with @encrypt and encypt them. 
} 

我不确定我应该如何在我的加密函数中实现这个“识别变量”部分。

【问题讨论】:

    标签: java serialization encryption workflow


    【解决方案1】:

    这是真正的 Java 序列化吗?如果是这样,那么当您需要对 Java 对象的序列化进行细粒度控制时,请实现 Externalizable 接口。

    【讨论】:

    • 谢谢肖恩!我知道。我的问题不是关于序列化,而是关于如何使用@encrypt 注释识别变量,加密然后序列化它。
    • 鉴于您必须通过实现可外部化在对象本身中做到这一点,我不会打扰。对象会知道哪些字段需要加密,所以让它自己做吧。
    【解决方案2】:

    参考本文中的“Java Cryptography Extension”http://java.sun.com/developer/technicalArticles/ALT/serialization/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多