Typography

活版印字


  • Home
  • Archive
  • Categories
  • Tags
  •  

© 2020 alincode

Theme Typography by Makito

Proudly published with Hexo

JWT (2) - 進化的 Token

Posted at 2016-03-02 JWT  jwt 

上一篇,講到 Access Token ,那接下來說說,建立 Token 的原理。

建立 Token

基本原理就是將資料先用 base64_encode 做加密後,再用指定的演算法跟密碼(e.g. sha256),去產出一個固定長度的加密 (Encrypt) 字串,取得加密字串的人,以再依照相同的規則跟密碼將資料還原。

一般加密規則

主要是需要這三個參數 algorithm、mode、padding 去運算,看起來大家都講好規則了,應該溝通沒問題了吧?

沒想到是災難的開始,因為並沒有一個審核機制,各家 Open source 就開始照著自己詮釋去做,結果無法正常解密的問題,尤其發生跨語言之間,例如 PHP 用的 library 跟 Java 用的 library 肯定不一樣,PHP 對於實作 Padding 差異上,幾乎是所有開發者必踩的雷。
http://php.net/manual/en/ref.mcrypt.php

進化的 Token

時代的進化,這麼漸漸單純的 Token 已經不符使用,我們有更多的需求:

  • 要有期限
  • 要可以被驗證
  • 要傳遞附加公開資訊
  • 我們要說共同的語言
  • 略…

Share 

 Previous post: JWT (3) 什麼是 JWT Next post: JWT (1) - 為什麼我們要用 Access Token ? 

© 2020 alincode

Theme Typography by Makito

Proudly published with Hexo