之前看了《碼書》很有趣,啊也是當故事書看看就忘了,誰知道沒多久就碰到需要用到密碼學知識的情況
latest #13
真正要使用時,就要把知識(有某些實作好的module可用)和應用情境的技術(server技術)結合起來
之前爬了一堆文章,學會把使用者密碼雜湊存在database,然後再加一些salt字串加密存在瀏覽器端(可以設為httpOnly為true,使用者就不能修改),來做到登入功能
那時東拼西湊的,做了個能動的也好像挺安全的方案就結了,也沒去管更多。哪知道事情還有分「單向雜湊」和「雙向加密」這些
直到一邊用,一邊才想說,啊!我好像有讀過這種東西,訊息有分單向和雙向的,那我用的到底是單向還雙向?可以decode嗎?才進一步去確認自己到底用了什麼加密演算
看了很多做法,才又學到jwt這東西。簡單說它就是一個你可以在主機加密,使用者也可以在瀏覽器解密讀內容的算法
啊我就又有疑問啦!奇怪,我主機送出訊息,也沒寄給你我的加密secret,為什麼使用者可以用個jwt.decode( )就看到訊息,這有什麼安全可言?什麼爛東西
了解之後才知道,jwt這東西可以加密、任何人也可以解密讀取,但無法修改訊息內容(至於原理請自行爬文)
所以可以用在哪內。用在例如要送出訂單、單價的場合,又怕中途被誰隨便竄改訂單內容。但是用在內含信用卡、密碼資訊就不合適了
然後再搭配一條單向加密的signed cookie資料,就可以做一些複雜的授權驗證功能
back to top