一个java工程师必知的安全意识(信息传输篇)
生活随笔
收集整理的這篇文章主要介紹了
一个java工程师必知的安全意识(信息传输篇)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
我們在遇到涉及用戶密碼,用戶聯系方式,身份證信息等敏感字段的時候,一般的處理方式是:
1.傳輸使用密文,拒絕明文傳輸用戶密碼,推薦明文加鹽加密,后臺再解密
比如要傳輸的明文是123456的明文密碼,我們一般要做以下處理 前臺:var data = "123456";1.明文加隨機鹽(隨機鹽隨機個數在加密解密時統一即可,這里以18位為例):var newData = randomString(18)+data;2.公鑰加密:var pwd = 公鑰加密方法(newData);具體js下載和使用可參考這里,免費的:https://www.bootcdn.cn/jsencrypt/后臺:1.私鑰解密String data = 私鑰解密方法(pwd);2.去掉前18為隨機鹽字符串截取即可 //上面的公鑰加密的樣例實現 var 公鑰加密方法 = function(明文,公鑰) {if(公鑰 == undefined){//沒有傳公鑰就用默認的公鑰 = 'asdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasd'}var jsencrypt = new JSEncrypt();jsencrypt.setPublicKey(公鑰);return jsencrypt.encrypt(randomString(18)+明文); } //外面使用: var olddata = '123456'; var newdata = 公鑰加密方法(olddata );2.后臺日志中禁止打印明文密碼,這時候可以用@JSONField(serialize=false)來防止打印出不想打印的屬性
@JSONField(serialize=false)是阿里的fastJson的一個注解
比如你使用JsonUtil.toJSONString(Xxx類)打印一個類的時候,又不想打印類中的某個字段,就可以在改字段上加這個注解
比如:
需要注意的是,如果這個屬性被final修飾,那么這個注解貌似是不起作用的
總結
以上是生活随笔為你收集整理的一个java工程师必知的安全意识(信息传输篇)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 两个numpy取相同值_闲谈Numpy的
- 下一篇: 消息队列(5):RocketMQ