2008年4月30日 星期三

C# 使用 MD5, DES, RSA 演算法加解密

http://richielin-programer.blogspot.com/2008/04/c-md5-des-rsa.html

在 .NET Framework 中有個 namespace 是專門處理加解密動作
System.Security.Cryptography
針對許多種加解密方式都有對應的類別來處理
天秤列出三種加密法實作
其它加密碼如 SHA1 系列與 MD5 語法相似,AES 與 DES 語法相似
就不另外寫出來了
PS. 以下部份資料取至 維基百科

MD5 演算法

MD5 即 Message-Digest Algorithm 5,是電腦廣泛使用的雜湊演算法之一
其演算法複雜度和不可逆性,通常用於確保資訊傳輸完整一致
因其不可逆性,所以只有加密的函式,沒有解密的函式

DES 加解密演算法

DES 加密法於 1977 年被聯邦政府列為數據加密標準
其加解密速度非常快速,但因為 56 位元金鑰過短
很有可能於 24 小時內被破解
如果需要安全一點的加密方式,可以考慮改用 AES 機制
AES 語法與 DES 大致相同,只在加解密的金鑰 KEY 及 IV 長度不同
加密及解碼需使用相同的金鑰

RSA 加解密演算法

RSA 是一種非對稱性加密演算法,其原理是以公鑰及私鑰來處理加解密
簡單來說,公鑰可以提供給任何需要加密的人,但是私鑰必須妥善保存
加密時以公鑰處理即可,但解密必須有私鑰

在 .NET Framework 中公私鑰可以 xml 及 RSAParameters 類別型態存在
而金鑰產生最簡單的方式是由 RSACryptoServiceProvider 類別來產生
每次初始化 RSACryptoServiceProvider 類別時即會亂數產生一組金鑰

加解密時只要使用同一組金鑰 (公私鑰) 即可

2008年4月24日 星期四

馬的~ 放住家鐵門內也會被偷 (幫忙協尋)

http://richielin-programer.blogspot.com/2008/04/blog-post_24.html

毘盧禪寺

就是照片上兩台捷安特腳踏車 YUKON DISC
天秤和老婆特別選的顏色,陪伴天秤上山下海一年多
就在昨天清晨 (4/23) 彰化住家中一起被偷了
一次損失兩台,很心痛

沒錯,腳踏車被在家裡還會被偷,這是什麼治安?
簡單描述一下住家
天秤家是透天房子,有兩道鐵門,房子鐵門及騎樓的鐵門
平時兩台腳踏車就停在騎樓間,騎樓前還有鐵門關著
小偷竟打開鐵門潛入騎門把兩台腳踏車幹走了
馬的~ 連停住家鐵門內的腳踏車都會被幹走~
已報警處理,但對警力不抱什麼希望就是了

幫個忙吧,有看到文章的朋友
就在彰化市後車站附近,似乎有人疑似看到兩個外勞騎著類似的腳踏車出現過
已通知警方調監視器處理中
天秤住彰化那麼久,還沒有看到騎一樣的顏色款式
麻煩住彰化的朋友幫忙注意一下
是不是有外勞(台灣人也有可能)騎著 橘白色捷安特 YUKON DISC (碟煞) 24檔變速
尤其是同時出現兩台更是可疑
不管是不是,麻煩通知一下天秤,就算搞錯天秤也會向車主解釋清楚的
0916779455 林先生
麻煩各位了

再補上一張照片
毘盧禪寺

2008年4月8日 星期二

C# 取得系統特殊目錄及環境變數

http://richielin-programer.blogspot.com/2008/04/c.html

Windows 作業系統中,存在著許多特殊目錄
這些特殊目錄有其特殊的用途,如 '桌面','程式集','我的文件夾' 等
如果需要的話,程式可以依照這種規則來讓使用更加方便
加上在 '控制台' 中的 '系統','環境變數' 裡,也有一堆系統參數設定
這些環境變數如 'OS','WINDIR' 等
或許可以讓程式用來判斷一些事情

image

以下提供 C# 讀取系統特殊目錄及環境變數的方式
系統特殊目錄指定於 Environment.SpecialFolder 這個列舉集合內
洋洋灑灑列了 2x 個目錄,必須配合 Environment.GetFolderPath() 函式取得目錄名稱

至於環境變數則是以 Environment.GetEnvironmentVariable() 函式來取得
帶入環境變數字串,該函式則會回傳結果 (字串)

以下列出所有特殊目錄的列舉及值,及一些環境變數值
每台電腦值都不盡相同,僅供參考

2008年4月7日 星期一

C# 覆製資料夾函式 CopyDirectory()

http://richielin-programer.blogspot.com/2008/04/c-copydirectory.html

提供一個很簡單的函式 - 資料夾覆製
把整個資料夾內資料 (包含檔案及子目錄) 通通 Copy 到指定的新資料夾中
很基本的功能吧?
但很奇怪的是 .NET Framework 竟然沒有提供
CopyDirectory() 函式以遞迴方式處理子目錄下檔案
以下是程式碼

2008年4月2日 星期三

C# SharpZip 應用

http://richielin-programer.blogspot.com/2008/04/c-sharpzip.html

C# 程式要處理壓縮檔,大致上都會選擇好用的 SharpZip
SharpZip 支援 ZIP, GZip, Tar, BZip2 格式
其文件說明豐富, API 還算簡捷
雖然本身提供了 FastZip 簡單易用,但是只有以下功能
1. 壓縮某個資料夾成為 ZIP 檔案
2. 解縮某個 ZIP 檔案到指定資料夾

如果想要對不同資料夾內許多檔案做壓縮處理,或是將 ZIP 內某個檔案取出
甚至只是想壓縮成 System.IO.Stream 資料流而不想儲存成檔案
FastZip 都無法處理
必須以 ZipOutputStream 類別來處理上述工作,建立整個機制卻不是那麼快

天秤寫了函式將 ZipOutputStream 類別包起來
提供單一函式呼叫就可以來處理上述的動作

函式使用如下
提供二個壓縮函式,六個解壓縮函式
使用方法

下載原始碼: FileEx.cs
下載 SharpZip 式庫及 FileEx.cs 檔案
SharpZip 加入參考,並加上 FileEx.cs 程式碼即可使用,以下為簡單的壓縮解壓縮範例