扫一扫关注公众号,长期致力于安全研究
前言:本文主要讲解JAVA序列化与反序列化
Java 序列化是指把 Java 对象转换为字节序列的过程;
Java 反序列化是指把字节序列恢复为 Java 对象的过程;
看完上面的简述,可能很多人似懂非懂。
比如你现在写一个项目,该项目有一个登录功能。该功能每次登录都需要从指定文件txt中读取账号密码进行登录。那么该文件内账号密码为明文的状态,肯定是不安全的。所以这个时候就用到了序列化与反序列化。当把账号密码序列化之后,里面的账号密码就会变成字节形式。当有人打开也会看不懂。只有进行反序列化才能恢复原样。
类代码:
public class USER implements Serializable {
public String user;
public int pass;
public USER(){
}
public USER(String user,int pass){
this.user = user;
this.pass = pass;
}
public void set(String user,int pass){
this.user = user;
this.pass = pass;
}
public void get(){
System.out.println("user: " +this.user+" pass: "+this.pass);
}
}
序列化代码:
USER us = new USER();
us.set("zhangsan",666666);
ObjectOutputStream obj = new ObjectOutputStream(new FileOutputStream("D:\p.txt"));
obj.writeObject(us);
obj.close();
可以看到这就是序列化的内容
反序列化操作
ObjectInputStream obj = new ObjectInputStream(new FileInputStream("D:\p.txt"));
USER u = (USER)obj.readObject();
u.get();
obj.close();
本文主要讲解了ObjectOutputStream和ObjectInputStream两种类
下方扫一下扫,即可关注
原文始发于微信公众号(安全族):JAVA序列化与反序列化
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论