json化List时,怎么让其密码都不被序列化出去

如题:json化List<User>时,怎么让其密码都不被序列化出去

评论区

JFinal

2016-10-09 15:49

首先如果是 sql 语句得到的这个 list,那么在 select 中指定获取哪些字段,不要使用 select *

其次可以使用 user.remove("password", "salt") 来一次性移除多个不想要的属性

再次可以通过 user.keep("id", "nickName", ...) 一次性只 keep 住希望留住的属性

最后,存放在数据库中的 password 必须是经过加 salt 并 hash 的,算法如下:
hashedPass = HashKit.sha256(password + 32位salt随机字符串)

JFinal

2016-10-09 15:50

绝对不要在数据库中存放密码明文,而且一定要用 salt 随机盐值,随止彩虹表破解

sruz

2016-10-09 17:53

@JFinal 嗯嗯,最简单的办法就是SQL上面搞搞,, user.remove返回只能遍历集合,一个一个去除,貌似就单个的时候蛮方便的。数据库密码必须加密滴,但是可以的话,数据库中保存的密码信息也不能被恶意用户轻易获取到,所以在响应的时候,密码字段必须干掉!

JFinal

2016-10-09 19:55

@xRhbN 光是 hash 不行,必须要加随机盐,保障不被彩虹表破解

热门反馈

扫码入社