作者: Andy Wu

一顆還新鮮的肝。 持續努力學習中~

密碼的加密模式(ECB CBC CFB OFB CTR)

資訊安全

使用金鑰進行對稱式加密時,要加密的明文長度通常都會遠大於金鑰長度

所以為了讓加密的演算法可以使用在各種不同長度的訊息上

加密的演算法會將明文或密文切割成區塊來依序進行處理

而這個區塊的大小,會剛好是金鑰的長度(扣掉檢查碼等等的)

有關對稱式加密的演算法如何依序處理這些區塊,又分成5種區塊加密模式
 

一次性密碼本:窮舉也破解不了的密碼

資訊安全

前幾天看密碼學的書介紹了一次性密碼本,覺得很有意思

世界上絕大部份的密碼,只要使用暴力破解法去嘗試所有的排列組合

一定會有被猜中的一天(假如今天存在一台運算速度極快的電腦)

可是一次性密碼本特別之處就在於就算嘗試所有的排列組合

也無法確認哪組是正確的解密結果

 
一次性密碼本的特性:

  • 顧名思義是一次性使用,使用後必須銷毀
  • 密碼必須是真隨機數組成的(True Random Number)
  • 密碼與明文必須等長

 

以公開的方式交換資訊生成對稱式金鑰

資訊安全

最近讀的密碼學的書裡面介紹了Diffie–Hellman Key Exchange,覺得很有趣,紀錄一下

 

使用情節

小明想與小華想利用對稱式加密建立加密連線

可是不管是任何一方先產生金鑰再傳送給另外一方都有被第三方監聽的風險

這時,Diffie–Hellman Key Exchange就派上用場了

Diffie–Hellman Key Exchange用於當溝通的雙方處於不安全連線(被第三方監聽)下

仍能交換資訊生成對稱式金鑰建立加密連線

Git修改local端、server端的branch名稱

Git版本控制

之前為了測試新功能而建立新的branch

原本想說只是測試看看,所以就暫時隨便取一個名字

到最後發現名字跟branch的內容有點文不對題

於是去查了一下git怎麼改local端跟server端的branch名稱

 

改local端的branch名稱

git branch -m {欲改名的branch} {branch新名稱}

這樣只有改好local端的名稱

還要把新名稱的branch push到server,並且把舊名稱的branch刪除

git push origin {新名稱的branch} :{改名後欲刪除的branch}

 

改server端的branch名稱

如果欲改名的branch並不存在local端,只存在server端

在server端複製一份欲改名的branch,並且重新取好新名字

git branch {branch新名稱} origin/{欲改名的branch}

把剛剛的操作push至server

git push origin {新名稱的branch}

把舊branch從server端上刪除

git push origin :{改名後欲刪除的branch}

啟用Apache的反向代理(reverse proxy)將請求導至其它port

Linux、Mac應用程式

假設今天某公司提供了三個web服務,分別是服務1、服務2、服務3,這間公司希望把這三個服務架在同一台伺服器上,但網頁的port只有80(或https的443)能對外啊,有沒有辦法先讓請求統一發至port 80或443後再轉發給對應服務的port呢?有的,這就是反向代理(reverse proxy)的概念。


(反向代理示意圖)

我們先在伺服器架一個反向代理的服務在port 80上(本篇以Apache為例),然後設定轉發規則將往後收到的請求根據這個規則轉發至對應的服務。對應的服務處理完後再丟還給反向代理,反向代理再將結果回傳給使用者,完成一次循環。