java 序列化serialize的小运用,密码加密存取
2016-10-26 15:59
375 查看
package com.oracle.test.serialize; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Serializable; public class PasswordFormat implements Serializable { /** * */ private static final long serialVersionUID = 1L; private String name; private transient String password; public PasswordFormat(String name, String password) { this.name = name; this.password = password; } public PasswordFormat() { } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } private void writeObject(ObjectOutputStream oos) throws IOException {//重写以下两个方法,完成序列化时password的加密和解密 oos.defaultWriteObject(); char a[]=this.password.toCharArray(); String str=""; for(int i=0;i<a.length;i++){ a[i]+=i; str+=a[i]; }//各项加i再逆置; StringBuilder sb = new StringBuilder(str); oos.writeObject(sb.reverse().toString()); } private void readObject(ObjectInputStream ois) throws ClassNotFoundException, IOException { ois.defaultReadObject(); String str = (String) ois.readObject(); StringBuilder sb = new StringBuilder(str); sb.reverse(); char a[]=sb.toString().toCharArray(); str=""; for(int i=0;i<a.length;i++){ a[i]-=i; str+=a[i]; } this.password = str; } @Override public String toString() { return "PasswordFormat [name=" + name + ", password=" + password + "]"; } public static void serializeTemp(PasswordFormat ob,File file){ try( ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream(file)); ObjectInputStream ois=new ObjectInputStream(new FileInputStream(file)); ){ oos.writeObject(ob); oos.flush(); System.out.println((PasswordFormat)ois.readObject()); }catch(IOException | ClassNotFoundException e){ e.printStackTrace(); } } public static void main(String[] args) { PasswordFormat pf=new PasswordFormat("xcw","xcw12345678"); File file=new File("F://a//first.xiaowu"); PasswordFormat.serializeTemp(pf,file); } }
相关文章推荐
- 运用加密技术保护Java源代码
- java中的用户名和密码加密保存到txt文件中
- 无视app.config,用序列化加密、解密反序列化自行存取程序设置
- java密码的加密与解密(3des)
- 运用加密技术保护Java源代码
- java 之 根据密码字符串加密示例
- java MD5 密码加密
- java中使用md5对密码进行加密
- java 密码加密--MD5以及异或加密
- java用户密码加密小结
- string转Unicode的java和javascript代码(客户端到服务器之间的密码加密的过程)
- 运用加密技术保护Java源代码
- Java安全:运用加密技术保护Java源代码
- 如何在java中使用Aes算法对密码加密
- Java密码加密,UUID自动生成主键
- 通过密码 加密解密算法,java
- Java DES算法加密解密与AES密码算法
- java 密码加密--MD5以及异或加密
- java中字符串 MD5密码的加密与验证
- 今天无意中发现JavaBean类基本都要求实现了Serializable接口,以前只是知道序列化以后,可以通过io流的方式将对象序列化和反序列化,进行存取,但不知道为什么需要序列化,今天总结一下