transient关键字:串行化,保护第三信息

 最早的保护敏感信息的技术是把包含敏感数据的成员声明为私有的(private)和暂时的(transietn) .  使用transietn修饰的变量不会被串行化,也不可能通过任何串行化机制
保存. 这样的声明可以使得敏感数据不会出现在流中,也不会通过串行化机制恢复.而且,对私有成员的读写不能扩散到类之外,所以这种方法可以保护敏感数据的安全.

特别重要的类根本不应该串行化,为了保证这一点,这样的类不能实现Serializable接口或Externalizable接口.

transient关键字使用的场合

对于某些类型的对象,其状态是瞬时的,这样的对象是无法保存其状态的,例如一个Thread对象或一个FileInputStream对象,对于这些字段,我们必须用
transient关键字声明,否则编译器报错.

另外,串行化可能涉及将对象存放到磁盘或在网络上传输,
这时候就会产生安全问题,因为数据位于Java运行环境之外,
不在Java安全机制的控制之中.对于需要保密的字段,不
应该保存在永久介质中,或者不就简单地不加处理地保存下来,为了保证安全性,应该在这些字段前面加上transient关键字加以修饰.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值