部落格觀察

聯絡我

Software

最新回應

此法邏輯相當簡單,是將一字串中的每一個字元轉換成ASCII碼,再利用偏移,把原本的字元變成別的字元,就可以進行加密與解密。因為太簡單了,所以安全性也不高,若要運用在專案必須要再三考慮。

步驟如下

1.取得字元的ASCII Code,這裡有一張ASCII表 http://home.educities.edu.tw/wanker742126/asm/ap04.html,我們可以知道Encoding類別ASCII屬性,可以幫助我們取得字元的ASCII Code。

2009-11-22 下午 10-36-43

2.我們將取得的ASCII Code加入偏移數,變數名稱為Data,讓Data裡裝的不再是原本的ASCII Code。在此我們為加入offset,當為加密原則,反之要解密時則是減。

2009-11-22 下午 10-54-51

3.然後再將加入偏移數的Data變數轉成Byte,再利用GetString方法取得String。

2009-11-22 下午 10-58-35

完整程式碼如下 

2009-11-22 下午 10-30-57

執行畫面如下

2009-11-22 下午 11-07-25

範例下載

CS_StringEncryption.rar

VB_StringEncryption.rar

 

新手發帖請多包涵


回應

  • Darkthread 2009/11/23 上午 05:19 回覆

    # re: [C#.NET][VB.NET] 利用 ASCII 碼進行文字 加密 / 解密

    這種編碼方式用來加密重要資訊可能強度稍嫌不足,如果要在實務上達到不易被破解的效果,可以考慮用DES/RSA等專業加密演算法,.NET有提供現成的類別可以支援,例如: http://www.dotnetthis.com/Articles/Crypto.htm。(借用保哥提供的範例 :P)

  • VB/ VBA/ C#/ Java/ C++ 語言學習筆記  2009/11/23 上午 09:17 回覆

    # re: [C#.NET][VB.NET] 利用 ASCII 碼進行文字 加密 / 解密

    to Darkthread :

    感謝分享,這篇只是簡單的範例。

  • 小朱 2009/11/23 上午 11:01 回覆

    # re: [C#.NET][VB.NET] 利用 ASCII 碼進行文字 加密 / 解密

    就算再簡單的範例也要提示這方法的風險,尤其是與資安有關的東西,我想你也不希望未來被某個誤用的人指著鼻子罵吧。

  • 初學者k.kai. 2009/12/4 上午 09:43 回覆

    # re: [C#.NET][VB.NET] 利用 ASCII 碼進行文字 加密 / 解密

    疑~怪怪的
    大大為什麼我用passwd字串加密
    解密出來的答案會是pass5d呢?
    w加密解密也是變成5??
    可以解一下嗎謝謝~!!
    我是下載C#的那個程式

  • 初學者k.kai. 2009/12/4 上午 11:45 回覆

    # re: [C#.NET][VB.NET] 利用 ASCII 碼進行文字 加密 / 解密

    我知道問題出在哪了
    就是//3.加入偏移數
    那裡好像v~Z都會轉不出來
    但是把+offset改成^ offset就正常了^^!!

  • VB/ VBA/ C#/ Java/ C++ 語言學習筆記  2009/12/4 下午 12:53 回覆

    # re: [C#.NET][VB.NET] 利用 ASCII 碼進行文字 加密 / 解密

    to 初學者k.kai. :

    因為這是利用Offset去處理的,所以真的要用這方法的話,還是要處理ASCII,不然會超出範圍。

  • Lupus 2010/2/4 下午 02:06 回覆

    # re: [C#.NET][VB.NET] 利用 ASCII 碼進行文字 加密 / 解密

    Offset部分可以改成動態的->
    一個encode string + 一個key string
    encoded[i]=(byte)(((GetByte(encode[i])+GetByte(key[i%key.length]))%256))類似這樣的虛擬碼 當密碼越長破解越複雜 但字典法容易暴力破0.0


*標 題:

*姓 名:

 電子郵件: (將不會被顯示)

 個人網頁:

*回應

登入後使用進階評論

Please add 8 and 1 and type the answer here: