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

資訊安全

最近讀的密碼學的書裡面介紹了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為例),然後設定轉發規則將往後收到的請求根據這個規則轉發至對應的服務。對應的服務處理完後再丟還給反向代理,反向代理再將結果回傳給使用者,完成一次循環。

[Java] SQL ResultSet轉換成JSON Array

Java程式語言

剛好遇到需要將query出來的result轉成json再pass給前端

怕以後又遇到同樣的需求,先筆記下來

記得import

import org.json.JSONArray;
import org.json.JSONObject;
import java.sql.ResultSet;

轉換的method

public static JSONArray convert(ResultSet resultSet) throws Exception {

	JSONArray jsonArray = new JSONArray();

	while (resultSet.next()) {

		int columns = resultSet.getMetaData().getColumnCount();
		JSONObject obj = new JSONObject();

		for (int i = 0; i < columns; i++)
			obj.put(resultSet.getMetaData().getColumnLabel(i + 1).toLowerCase(), resultSet.getObject(i + 1));

		jsonArray.put(obj);
	}
	return jsonArray;
}