檔案加解密與上傳Dropbox雲端
開發工具:
- 開發軟體:
Visual Studio 2015 C#
Windows Form應用程式
.NET Framework 4.5
- 另外使用到的類別庫:
- OAuth授權使用的類別庫:
Nemiro.OAuth.LoginForms 1.0.0
- (AES)加解密類別庫:
AesCryptoServiceProvider 類別
- 使用的儲存端:
DropBox雲端的API
DropBox雲端
製作動機:
資訊科技發達的時代下,雲端發展迅速崛起與盛行帶給人們存取大量資料的方便性,同時也衍生出另外的重大問題就是資料的安全性。在針對資料的安全性方面,通常都是加密來做保全,但當加密檔案過多金鑰管理就相對較於麻煩。因此透過此專案可達到快速尋找到正確金鑰來解開加密文件取得內文,以有效且安全之方式達到雲端加密檔案之金鑰管理,為機敏資料檔案做到有效保密。而此專案是用AES(高級加密標準)來針對檔案加解密,因此對於資料保密的安全度是可以信賴的。
- 使用者介面圖:
- 需輸入使用者DropBox雲端的API。
- 則是可以針對DropBox建置資料夾來歸類檔案。
- 顯示的是DropBox上原有的檔案、資料夾與新增後的資料訊息,下載則是連續觸及顯示的檔案後選擇儲存位置後,便會自動下載解密。
- 下載跑馬燈,給予使用者確認檔案下載進度。
- 則是選擇所要加密上傳的檔案,按下確定按鈕後便會自動加密上傳,同時會將存在於本機上的原檔案刪除以確保安全。
功能使用與介紹:
- Dropbox開發人員註冊。
- 選擇Dropbox開發人員API。
- Dropbox點選新增。
- Dropbox新增第一個選項(個人使用)
- 輸入個人Dropbox API帳密。
- 輸入個人Dropbox帳密。
- 確認存取Dropbox資料夾。
- 使用新增功能再DropBox新增資料夾。
- 選擇檔案加密上傳畫面。
- 下載雲端加密檔案選擇位置。
開發小心得:
此專案的開發就如同製作動機所說的,在於現代科技的發達,雲端的盛行下,我們時常會將許多檔案存放在於雲端中,一來方便取得,二來空間夠大,但卻有時會忽略它的安全性,而造成不可挽回的局面。而在開發此專案的過程中,其實自己對於雲端的系統與加密的方法不是那麼了解,因此便瀏覽了許多技術文章與部落格,從中與作者問答獲取開發的靈感,與找尋開發時遇到的瓶頸解決方法,像是在雲端的API取得與認證的部分,就分為連續登入與單次登入,差別在於我們所使用的帳號不同或防止他人盜用,因此作了區隔。另外在AES加解密的演算程式碼裡還有運用到Base64編碼,是因為C#自帶的類庫實現SHA256會返回到一個Byte[]數組,這個數組的長度是32,JS的SHA256是64,是把每個Byte[]直接轉換成了2個hex字符串。所以C#中加密後是44位是因為把這個數組用Base64編碼成了字符串。這些小細節都是在開發過程中所遇見的,而結果都是在重複的測試與推算下得出來的,因此對於我來說真的是受益許多,也為我的專長帶入更專業的認知。
撰寫人:第十屆技術組MSP 李明陽