閱讀844 返回首頁    go 阿裏雲 go 技術社區[雲棲]


C# 加密小工具代碼實現


關鍵點有以下幾個:

1、openFileDialog控件的使用
如果通過單擊選擇按鈕來實現選擇本地某個文件的功能呢?
具體來說分為以下幾步:

a、新建Winform窗體,畫好相應的控件。

b、在工具箱中找到openFileDialog,拖到“選擇文件”按鈕上,此時會出現如下這種效果:

此時openFileDialog會顯示在界麵的下方,而不是界麵上,這樣就可以了,通過單擊“選擇文件”按鈕即可實現打開本地某個文件的功能。

同時“選擇文件”按鈕的Click函數中需要添加下麵幾行代碼:

DialogResult diaResult = this.openFile.ShowDialog();
if (diaResult == DialogResult.OK)
{        
//內部可以獲取文件名之類的信息
}

那麼如果獲取打開路徑下的文件名、路徑信息呢?

可以通過這幾個屬性來實現:

a、openFileDialog控件的FileName屬性來獲取路徑信息,此時的路徑信息包含文件名及文件拓展名。

比如:E:\Work\Vs\TestEncryption\加密處理\待加密\死亡海岸線.txt

b、如果隻想獲取“死亡海岸線”這個文件名呢?

Path.GetFileNameWithoutExtension(pathName)即可以實現這個功能,而且此時不帶文件拓展名奧,傳入參數pathName就是a中的路徑信息。

那麼如何在選擇相應文件後,獲取文件大小及拓展名呢?如下代碼即可實現:

FileInfo fi = new FileInfo(pathName);
filetype = fi.Extension;//文件拓展名
filesize = fi.Length;//文件信息的字節數
openFileDialog控件設置初始打開路徑有三種方式:
     1、下麵兩行代碼的效果是一樣的(這是兩種):
openFileSave.InitialDirectory = "E:\\Work\\Vs\\TestEncryption\\加密處理\\保存文件";
openFileSave.InitialDirectory = @"E:\\Work\\Vs\\TestEncryption\\加密處理\\保存文件";

    還有一種方式是通過openFileDialog控件右擊屬性來實現的。

其中有一個屬性是:InitialDirectory,在其後麵填寫:E:\Work\Vs\TestEncryption\加密處理\待加密\保存文件,效果與上麵兩行代碼一樣。

c、其中用到的幾個函數為:

        /// <summary>
        /// 讀取執行路徑下文件信息
        /// </summary>
        /// <param name="filename">指定的路徑</param>
        /// <param name="start">起始位置,一般設為零</param>
        /// <param name="length">文件信息的長度</param>
        /// <returns></returns>
        public static byte[] ReadFile(string filename, int start, int length)
        {
            byte[] btFile = null;
            using (FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.Read))
            {
                btFile = new byte[length];
                fs.Seek(start, SeekOrigin.Begin);
                fs.Read(btFile, 0, length);
            }
            return btFile;
        }
//將byte數組轉換為string
        public static string BytesToString(byte[] bt)
        {
            return Encoding.UTF8.GetString(bt);
        }

小注:

1、關於C#加密的代碼,網上有各種各樣,大家可以參考。

2、MD5 並不是加密算法,而是摘要算法。加密算法是可逆的,摘要算法是理論上不可逆的。如果說MD5是加密算法,那還不如稱他是超級壓縮算法呢,因為你輸入任意長度的明文給他,結果都是一個定長16 、32、64。

3、將加密後的信息寫入指定文件,可以參考記錄文本日誌的函數

4、ComBox控件的使用可以參考:ComBox控件




最後更新:2017-04-03 12:54:24

  上一篇:go 排序算法大數據量測試結果
  下一篇:go HttpWebRequest的GetRespons偶爾超時、死掉的原因及解決辦法