身為一個程式設計師,隨身有一個好用的 command line tool,也是很正常的~
我用的是 iterm2 + zsh + oh-my-zsh,這裡就不贅述是為什麼了(因為這組合太多人用了,網路上文章很多拉~),再修改一些設定和加上一些 plugin 來改造 command line 環境。
延續上次簡介密碼學的時候有談到 PKI,今天要來看看 X.509 這個廣為使用的數位憑證標準。
先來複習一下名詞吧
Symmetric Encryption:對稱加密,加解密用同一把鎖
Asymmetric Encryption:非對稱加密,用兩把鎖配合來加解密
Public Key:非對稱加密中可公開的鎖
Private Key:非對稱加密中的私鑰,絕對不可外流
Signature:數位簽章,通常是利用內容的 Hash 和 Private Key 所產生的,用來識別發送端身份
Man-in-the-middle attack:中間人攻擊指的是駭客利用攔截和偽裝公鑰交換來竄改和轉發訊息
PKI:公開金鑰基礎架構提供公鑰和證書的管理
CA:Certificate Authority,認證機構也就是憑證簽發的機構
Certificate:由 CA 所發的憑證,包含擁有者的資訊、CA、有效日期等訊息
CSR(Certificate Signing Request):憑證簽發請求文件,要透過這份文件去跟 CA 申請憑證
在傳遞資料的時候,若是不希望別人看到,那麼我們就會把內容做適當的處理。在現實生活中其實隨處可見密碼學的概念,我們就來想像以下的情境吧。
Tony 想傳情書給 Whitney,但不想給別人看到,他們會怎麼做呢?
JSON(JavaScript Object Notation)是一種輕量級的資料交換語言,以純文字為基礎去儲存資料,有相容性高、易於理解且許多程式語言都支援等優點。
GPS 英文全名是:Global Positioning System,全球定位系統
一般來說要表示地理位置都會用座標來標示,實際上用座標是不夠清楚的,因為所指的座標是用什麼基準的並沒有說明。明確的地理位置會用大地基準(Datum)+坐標格式(Format/Grid)兩個參數來標示。
再動手寫這篇之前,我踩到了一個雷,這篇描述了一下我遇到的問題跟解法,若是有人有更好的想法,或是我哪裡有搞錯了,請告訴我,我會非常感謝的!!!
近年來 Web 的服務越來越多樣化,其中不乏較大流量的服務,不僅增加傳輸的成本,也會拖慢 Browser 處理的時間,因此需要重複的利用之前所緩存的資源。
在一年多以前,開始在社群跟朋友間很常聽到 Go 這個程式語言,也很好奇為什麼它突然聲名大噪,為什麼這麼多人推崇,在做了一些功課以後,近期有個機會可以將 Go 用在實際的專案上,就來稍微的敘述一下心得好了。