2012年12月16日 星期日

用 Xor 來加密字串

Xor 字串加密是用於寫有關普通字串變成讓人不知道的字串值
而原理就是把一個字元改成另外一個字元,也就是位移的動作
ex:
例如將 abc 這個字串和 17 作 Xor 運算會得到 psr
如果將 psr  這個字串和 17 作 Xor 運算會得到 abc

也許你會覺得這種方式過於簡單,並沒有什麼安全性,事實上並不是這樣;有許多公認非常安全的加密法也只是做 Xor 運算而已,只是要看你如何組合,如果只是用單一個鍵去加密,當然很容易被破解,但我以下教學只簡單用一個字元來作字串的加密
如果你想要把字串加密的更難的話,也可以把程式碼編改一下唷!


程式碼 VB
            Dim result1, pass1 As String
            Dim h As Integer
            pass1 ="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
            For h = 1 To Len(pass1)
                result1 = result1 + Chr(Asc(Mid(pass1, h, 1)) Xor Asc("*"))
            Next h
            pass1 = result1
            result1 = ""
            For h = 1 To Len(pass1)
                result1 = result1 + Chr(Asc(Mid(pass1, h, 1)) Xor Asc("*"))
            Next h
            pass1 = TextBox1.Text


VB 說明
「pass1 ="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"」為要加密的字串
Xor Asc("*")加密的金鑰為"*"
pass1 = TextBox1.Text最後加密完成的字串會顯現在 TextBox1.Text

※ 注意事項
一、加密金鑰盡量使用英文、數字和半型符號
二、金鑰不要跟加密/解密的字串重複,效果會顯現不出來
       EX: 金鑰:「D」,字串:「ABCDEF」,結果:「ABC」;會導致 D 以後的字元都會不見!

VB 範例
我自己有寫一個範例出來,不會寫的可以下載來參考參考


檔案名稱:KE-UNPass.rar
檔案大小:195 KB (199,831 個位元組)
適用平台:VB 2010
儲存空間:Google 雲端硬碟
下載連接:下載點  (如何下載?