public class A{
   private String a;
   public String getA(){
      return a;
   }   public void setA(String a){
      this.a = a;
   }
}A aa = new A();
aa.setA("aaa");现在需要把aa这个对象加密后写入到本地文件,请问把aa对象加密这一步怎么做?谢谢

解决方案 »

  1.   

    // 加密             try {
                A aa = new A();
                File file = new File("c:\\aa.dat");            // 加密的
                ByteArrayOutputStream baos = new ByteArrayOutputStream();
                ObjectOutputStream out = new ObjectOutputStream(baos);
                out.writeObject(aa);
                
                byte[] domBytes = baos.toByteArray();
                // Panoweaver stitching parameter DES encrypt key
                byte[] desKeyData = "pspDESek".getBytes();
                DESKeySpec desKeySpec = new DESKeySpec(desKeyData);
                SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
                SecretKey desKey = keyFactory.generateSecret(desKeySpec);
                Cipher des = Cipher.getInstance("DES");
                des.init(Cipher.ENCRYPT_MODE, desKey);
                FileOutputStream fout = new FileOutputStream(file);
                CipherOutputStream cout = new CipherOutputStream(fout, des);
                cout.write(domBytes);
                cout.flush();
                cout.close();
                baos.close();
            } catch (InvalidKeyException ex) {
                ex.printStackTrace();
            } catch (NoSuchAlgorithmException ex) {
                ex.printStackTrace();
            } catch (InvalidKeySpecException ex) {
                ex.printStackTrace();
            } catch (NoSuchPaddingException ex) {
                ex.printStackTrace();
            } catch (IOException ex) {
                ex.printStackTrace();
            }
      

  2.   

    java本身就有加密的,DES算法好象可以直接调用的。
      

  3.   

    哦,还是DES算法呢.我倒没注意过.chenweionline(键盘上的舞者),写的比较详细的.
    其中:
    byte[] desKeyData = "pspDESek".getBytes();
    desKeyData,应是密钥.实际应用中保存到其它地方为宜.