[HTTP] API Timeout 指南 (connect / read timeout)

Intro 關於 API Timeout 的網路資料略顯不足,Wikipedia 目前也只有廣義 Timeout (computing) 資訊。 本篇將分享個人對 Timeout 的所知,如有錯誤歡迎告知修正 Timeout 定義 Client Connect Timeout Read Timeout TCP Client TCP handshake 中從發出 SYN 後,至等待收到 SYN-ACK 的時間 送出 PSH-ACK packet,至等待收到對應 PSH-ACK packet 的時間 HTTP Client TCP handshake 中從發出 SYN […]

[SMTP] 簡易郵件傳輸通訊協定 SMTP (Simple Mail Transfer Protocol) 指南

Intro 簡易郵件傳輸通訊協定 SMTP 是什麼? | Cloudflare 簡單郵件傳送協定(Simple Mail Transfer Protocol / SMTP)可用在傳送和接收電子郵件的資訊,但 SMTP 通常用作傳送電子郵件而不是接收。 SMTP 是一個相對簡單的基於文字的協定,可以透過協定指定將訊息傳送至一或多個接收者,通過 telnet 程式可以簡單的測試一個 SMTP伺服器。SMTP 主要 TCP port 以前為 25 現今為 587 (TLS) 。DNS 的 MX record 決定 SMTP 伺服器。 角色 Agent Software for example MUA […]

[GEO] ESRI Shapefile (.shp .shx .dbf .prj) 空間資料開放格式

Intro Shapefile – Wikipedia ESRI Shapefile(shp)是美國環境系統研究所公司(ESRI)開發的空間資料開放格式。目前該檔案格式已經成為了地理訊息軟體界的開放標準,是重要的交換格式,能夠在ESRI與其他公司的產品之間進行資料互操作。 Tools mapshaper 可以將 Shapefile 轉成 GEO JSON,以便倒入如 Elastic Search 或 MongoDB 等 Index Storage。 mbloch/mapshaper: Tools for editing Shapefile, GeoJSON, TopoJSON and CSV files – GitHub mapshaper online

[DNS] CAA – Certification Authority Authorization 指南

Intro DNS CAA (DNS憑證頒發機構授權) – Wikipedia RFC 6844 通過域名持有人指定其域名的白名單憑證頒發機構來實現的安全機制。 該政策透過一個新的域名系統資源記錄(Record)「CAA」來實現,Record範例如下: example.com. CAA 0 issue “ca.example.net” 設定 首先 DNS records 要能夠支援 CAA record 再來針對憑證機構產生及設定 CAA record 即可,以下範例以 Letss Encrypt 機構為例: example.com. CAA 0 issue “letsencrypt.org” CAA Record Helper – CAA資源記錄產生器 References […]

[JWT] JSON Web Token 指南

Intro JWT (JSON Web Token) 是一種基於 JSON 的開放標準(RFC 7519),它定義了一種簡潔(compact)且自包含(self-contained)的方式,用於在雙方之間安全地將訊息作為 JSON 物件傳輸。而這個訊息是經過數位簽章(Digital Signature),因此可以被驗證及信任。可以使用 密碼(經過 HMAC 演算法) 或用一對 公鑰/私鑰(經過 RSA 或 ECDSA 演算法) 來對 JWT 進行簽章。 Wiki – JSON Web Token RFC 7515 – JSON Web Signature(JWS) JWT 的簽名標準,包括 Header、Payload 和 Signature,Header […]

[Dict] Golden Dict 跨平台多格式支援開源字典

Intro Golden Dict官網 Golden Dict GitHub 字典來源 – StarDict Dictionaries 中文字典 – 字典來源 – StarDict Dictionaries 安裝 Windows 直接至官網Download頁面下載即可。 MacOS 官方GitHub Wiki:Early Access Builds for Mac OS X 字典 字典檔的Source可以參考Intro連結。 字典的安裝預設路徑: ./GoldenDict/content 安裝完成後即可Rescan取得進行設定。 MacOS可以進入程式套件資料夾內MacOS/content加入路徑設定掃描

[Encrypt] 區塊加密解密指南(對稱式) – Block Cipher guide

Intro 一般所謂的對稱金鑰演算法,以區塊加密演算法為主,演算法如AES或DES。 區塊加密工作模式:所謂的Mode,如ECB、CBC、PCBC、CFB、OFB和CTR。延伸出初始向量(IV) ECB,CBC,OFB,CFB,CTR和XTS模式僅僅提供了機密性;為了保證加密資訊沒有被意外修改或惡意篡改,需要採用分離的訊息驗證碼,例如CBC-MAC。 認證加密模式(AE,Authenticated Encryption),或稱為authenc,結合了加密和認證的單一模式。AE模式的例子包括CCM,GCM,CWC,EAX,IAPM和OCB。 Mode – 工作模式 最簡單的加密模式為ECB:每個加密塊獨立加密,不須使用IV (亦即相同內文,密文相同) 經典常用的加密模式為CBC:每個明文塊先與前一個密文塊進行互斥或後,再進行加密。在這種方法中,每個密文塊都依賴於它前面的所有明文塊。同時,為了保證每條訊息的唯一性,在第一個塊中需要使用IV。 IV – 初始向量 初始向量(Initialization vector) Padding – 填充 填充(Padding) 部分模式(即ECB和CBC)因塊密碼只能對確定長度的資料塊進行處理,需要最後一塊在加密前進行填充。 CFB,OFB和CTR模式不需要對長度不為密碼塊大小整數倍的訊息進行特別的處理。 實作 OpenSSL指令 // Encrypt with EBC $ openssl enc -aes-256-ecb -in plaintext.txt -out encrypted.txt -k YourSecretKey // […]