java 有把可序列化对象用可逆算法加密, 然后序列化到页面的隐藏input元素中, 然后方便读取的现成组件吗?

解决方案 »

  1.   

    import java.io.ByteArrayOutputStream;
    import java.io.ObjectOutputStream;
    import java.security.SecureRandom;import javax.crypto.Cipher;
    import javax.crypto.CipherOutputStream;
    import javax.crypto.KeyGenerator;import sun.misc.BASE64Encoder;public class TestNew {
    public static void main(String[] args) throws Exception {
    KeyGenerator keygen = KeyGenerator.getInstance("DES");
    keygen.init(56, new SecureRandom());
    Cipher c = Cipher.getInstance("DES");
    c.init(Cipher.ENCRYPT_MODE, keygen.generateKey());//你需要把key保存起来的,否则解不了密
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    ObjectOutputStream oos = new ObjectOutputStream(new CipherOutputStream(baos, c));
    oos.writeObject("FFFFFFFFFF");
    oos.close();
    BASE64Encoder encoder = new BASE64Encoder();
    System.out.println(encoder.encode(baos.toByteArray()));
    }
    }