宥諭 發問時間: 電腦與網際網路程式設計 · 1 0 年前

用VB做加解密!!

從小寫a~z大寫A~Z =<數字1~52

從小寫a~z大寫A~Z =>數字1~52

例如:

a=1

b=2

一直下去

就是要用數字表示英文

7^ 7 % 55 = 28 加密

dim i,s,a,n as integer

a=7

s=(s*a)%55

for i=1 to 2step 1

for i = 1 to n step 1

next i

這樣不知道對不隊...只會這麼一點...希望能幫忙解一下@@感激不盡!!

3 個解答

評分
  • 1 0 年前
    最佳解答

    加密部份的演算法了,較常見的方式是用 XOR 做一個位移的動作這種運算方法速度非常快,也因此大受歡迎,也許你會覺得這種方式過於簡單,並沒有什麼安全性,事實上並不是這樣,有許多公認非常安全的加密法也只是做Xor運算而已,只是要看你如何組合,如果只是用單一個鍵去加密,當然很容易被破解,至於鍵值要如何變化這就要靠自己了,以下我示範一種簡單的加密方式,Code雖不長但已經有足夠安全性,就算被拿到同樣的Code只要Key不同一樣很難破解

    '加密動作 sText編碼字段 sKey編碼鑰匙

    Public Function Code(sText As String, Optional sKey As String) As String

    Dim I As Long

    Dim L As Long

    Dim X As Long

    Dim strTemp As String

    If sKey = "" Then sKey = " "

    For I = 1 To Len(sText)

    L = I Mod Len(sKey) 1 '計算使用key的那個字來做加密

    X = Asc(Mid$(sText, I, 1)) Xor Asc(Mid(sKey, L, 1)) '利用Key把字串 Xor 加密

    strTemp = strTemp & Chr(X) '組成新字串

    Next I

    Code = strTemp

    End Function

    '解密動作 sText已編碼字段 sKey編碼鑰匙

    Public Function UnCode(sText As String, Optional sKey As String) As String

    Dim I As Long

    Dim L As Long

    Dim X As Long

    Dim strTemp As String

    If sKey = "" Then sKey = " "

    For I = 1 To Len(sText)

    L = I Mod Len(sKey) 1 '計算使用key的那個字來做解密

    X = Asc(Mid$(sText, I, 1)) Xor Asc(Mid(sKey, L, 1)) '利用Key把字串 Xor 解密

    strTemp = strTemp & Chr(X) '組成原本字串

    Next I

    UnCode = strTemp

    End Function

    Private Sub Command1_Click()

    Dim sTemp As String

    sTemp = "LINUX, HTML, MS SQL, Dreamwaver, VB Script, Word, XML"

    Me.Print "加密前 " & sTemp

    sTemp = Code(sTemp, "key")

    Me.Print "加密後 " & sTemp

    sTemp = UnCode(sTemp, "key")

    Me.Print "解密後 " & sTemp

    End Sub

    你的方式並非不行,但是因為你的表有比較規則的公式會較容易被破解(不過應該很少人會那麼閒)

  • 1 0 年前

    用英文作加解密的動作...

  • 1 0 年前

    不太了解你的意思耶!

    你是說把英文翻成數字儲存嗎?

還有問題?馬上發問,尋求解答。