首页
App
&
Coffee
文档
项目
分享
反馈
俱乐部
登录
注册
json化List时,怎么让其密码都不被序列化出去
sruz
2016-10-09 15:19
如题:json化List<User>时,怎么让其密码都不被序列化出去
项目:
JFinal
评论区
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 不行,必须要加随机盐,保障不被彩虹表破解
回复
发送
我要反馈
热门反馈
扫码入社
其次可以使用 user.remove("password", "salt") 来一次性移除多个不想要的属性
再次可以通过 user.keep("id", "nickName", ...) 一次性只 keep 住希望留住的属性
最后,存放在数据库中的 password 必须是经过加 salt 并 hash 的,算法如下:
hashedPass = HashKit.sha256(password + 32位salt随机字符串)