2017年7月20日星期四

GitHub 及 EGit ( PART 1 / 8 ) + 信息安全

GitHub 是甚麼?能做到甚麼?不要這樣問,有問題問 Google。
既然進來了,就是想學 Eclipse + GitHub 如何運用。

用 GitHub 前,首先要懂得用 git。無論如何,先去弄一個 GitHub 帳號回來再算。

GitHub LOGO

到 GitHub 申請帳號
https://github.com/

進入官方網頁
  1. 帳號名稱。
  2. 收確認信的 E-MAIL,不要亂填。
  3. 密碼,隨意。
  4. 建立帳號。

都不獲通過

哈,全部資料都不通過。

跟指示填

跟據指示,把資料填寫正確後,按【Create an account】。

選免費就好

用免費,按【Continue】。

填問卷有助GitHub發展

普通問卷,可做可跳過,隨意。

成功了嗎?!

按【Start a project】試試。

E-Mail在這裡最少在這裡不要亂填

在申請帳號時,不是說過不要亂填 E-MAIL 嗎?這裡就會用到。

確認電郵

GitHub 寄來 E-MAIL 大約就這樣。確認後,會回到【Start a project】那一頁。

GitHub各種設定

別心急,先去右上角,下拉選單按【setting】設定一下。步驟2及3那兩步可以無視,那是補充說明刪除帳號的步驟。

刪除帳號

刪除帳號確認畫面。有【確定】按確定,有【下一步】按下一步,習慣很可以恐怖,這設計最少不會手殘誤按。

GIT 概念,以下連結有詳述,假如覺得麻煩,這 BLOG 有比較輕鬆的圖解說明 ( 共 8 章 )︰
http://wiki.eclipse.org/EGit/User_Guide#Concepts

建立好帳號後,出現的 GitHub Guides︰
https://guides.github.com/activities/hello-world/

———————————信息安全 ( START )————————————

在解說 Git 之前,稍微離題一下,概述信息安全 ( information security )︰

1. 機密性(Confidentiality)


GPG 不說,舊時代産物,容易破解,沒多少人用。在 GitHub【setting】中,有一欄是關於SSH,EGit 也會用到,所以只說這個。

SSH 是 PKI (Public Key Infrastructure) 的一種應用,除了機密性外,也包完整性 (Integrity) 及認證 (Authority) 功能,不會解釋怎運作,有關 PKI,請google【RSA加密演算法】。總言之,生產出來的鎖匙有一對,一把是自已保存及加密用,另一把是公開給人用。在 GitHub 及Eclipse 實際操作是怎做,下回解說。

2. 完整性(Integrity)


重點,在下載 open source 軟件時,或許有看過 SHA、MD5、checksum 之類字眼,那是什麼呢?通俗點,大家都叫它做【檔案指紋】。人類指紋是獨一無二,檔案也能造一個類似的東西,檔案指紋是一組字串,那串字的意義是什麼?

7zip官網

到【7-zip】http://www.7-zip.org/,安裝這個解壓程式。(請注意 32bit 及 64bit 版本分別)

隨便開個設事本打點字

然後在 Windows 桌面,開一個新的記事本 ( Win + R, 打 notepad 也可以開啟 )。
在記事本隨便打點字,save。

安裝完7zip,右鍵的目錄裡多了【CRC SHA】

在檔案右鍵,選【CRC SHA】 ==> 【SHA-1】。

SHA的hashcode

看到像亂碼的一串字就是 SHA-1。現在還不明白有什麼意義?跟步驟做完就會明白。

有沒有看得出修改了什麼?

再次開啟檔案,看得出修改或加了什麼嗎?只是拍了一下 space bar,加上一格空白,save。

SHA-1的hash code完全不同

在檔案右鍵 ==> 【SHA-1】。看到嗎,只是加了一個不起眼的空白,整個 SHA-1 字串跟之前都不一樣。

有沒有聽過偽裝網址、詐騙電郵?手法通常都是用數字的 0,取代英文字的大階 O 之類,例如 GOOGLE 及 G00GLE 兩個字不留意的話,是看不到分別,用這種技術來防範詐騙是個好方法。( 開個 notepad 試試 GOOGLE 這例子看看 )。

檔名不同,內容一樣,hash code一樣

追加測試,如果文檔內容一樣,然後只改檔案名字,算出來的 SHA-1 會不會一樣呢?

結果一樣。文本檔跟執行檔,本質都是 0 與 1 組成,所以 SHA-1 這個方法,適用於任何檔案,換做 open source 軟件也一樣。

有趣一點的用法,網上經常下載圖片,例如從 Pixiv 下載圖片,設定成 wallpaper ( 檔名︰a.jpg ),到 facebook 又遇上一張似曾相識的圖片,但怕錯過了什麼,先下載回來再算 ( 檔名︰b.jpg )……問題來了,Windows 只會問【同檔案名】是否覆蓋過並附上縮圖要你決定,並不會知道內容是否一樣。用這個技術就能知道有沒有重覆圖,即使【不同檔案名】!刪除內容重覆檔案,不限圖片、音樂、影片也可以!

有興趣可以 google【MessageDigest】獲得更多資訊,或許日後會寫一寫這種實用又好玩的程式。

測試整個資料夾計 SHA-1 的結果

假如不是一個文字檔,而是一個資料夾的 SHA-1 。

想像一下,資料夾是 project,入面的文字檔是 source code……
每次計算 SHA-1,如果跟上次不同的話,把整個資料夾的東西複製一份……
制作成 database ,key 是 SHA-1 的值,value 是複製的資料夾及 comment ……

這樣累積起來,不就有很多個【版本】嗎? 要搜尋特定【版本】的話,comment 就是個很重要的線索。

Key-value database
https://en.wikipedia.org/wiki/Key-value_database

3. 可用性(Availability)


可存取資源的穩定度。玩網路遊戲一定聽過……LAG,LAG很大的遊戲穩定嗎?例行維修遊戲伺服,永遠都不會準時開放,那能算穩定嗎?最慘是回潮,時不時會回潮的網絡遊戲算穩定嗎?

穩定,主要都是說設備、備份及後備方案之類的東西,例如 service level agreement ( SLA ),去租伺服器應該都有類似的東西要簽。

有興趣想知道有什麼大事發生過,可去 google 一下【Gitlab 直播搶修】,以下是那個直播。
https://www.youtube.com/watch?v=nc0hPGerSd4

———————————信息安全 ( END )————————————

申請及刪除帳號教學到此為止,有時間可以去摸索一下【setting】內的【Profile】及【Email】那兩欄寫得很淺易清楚,不會太難。

認識信息安全是必要,即使不是 GitHub,在 Open source 路上,日後也會遇見,早點了解一下比較好。

下一回【GitHub 及 EGit ( PART 2 / 8 ) + 網絡素養

沒有留言:

發佈留言

設有留言驗證及審查,檢閱後,才會顯示留言。
本人惰性很高,留言或許會石沉大海。