# 加密解密问题,请问这用的什么算法?是根据什么进行加密和解密的?

kimurakenshin 2003-11-03 02:07:17
Option Explicit

' Encipher the text using the pasword.
'加密
Private Sub Cipher(ByVal password As String, ByVal from_text As String, to_text As String)
Const MIN_ASC = 32 ' Space.
Const MAX_ASC = 126 ' ~.
Const NUM_ASC = MAX_ASC - MIN_ASC + 1

Dim offset As Long
Dim str_len As Integer
Dim i As Integer
Dim ch As Integer

' Initialize the random number generator.
Rnd -1
Randomize offset

' Encipher the string.
str_len = Len(from_text)
For i = 1 To str_len
ch = Asc(Mid\$(from_text, i, 1))
If ch >= MIN_ASC And ch <= MAX_ASC Then
ch = ch - MIN_ASC
offset = Int((NUM_ASC + 1) * Rnd)
ch = ((ch + offset) Mod NUM_ASC)
ch = ch + MIN_ASC
to_text = to_text & Chr\$(ch)
End If
Next i
End Sub
' Encipher the text using the pasword.
'解密
Private Sub Decipher(ByVal password As String, ByVal from_text As String, to_text As String)
Const MIN_ASC = 32 ' Space.
Const MAX_ASC = 126 ' ~.
Const NUM_ASC = MAX_ASC - MIN_ASC + 1

Dim offset As Long
Dim str_len As Integer
Dim i As Integer
Dim ch As Integer

' Initialize the random number generator.
Rnd -1
Randomize offset

' Encipher the string.
str_len = Len(from_text)
For i = 1 To str_len
ch = Asc(Mid\$(from_text, i, 1))
If ch >= MIN_ASC And ch <= MAX_ASC Then
ch = ch - MIN_ASC
offset = Int((NUM_ASC + 1) * Rnd)
ch = ((ch - offset) Mod NUM_ASC)
If ch < 0 Then ch = ch + NUM_ASC
ch = ch + MIN_ASC
to_text = to_text & Chr\$(ch)
End If
Next i
End Sub

' Translate a password into an offset value.
Dim value As Long
Dim ch As Long
Dim shift1 As Long
Dim shift2 As Long
Dim i As Integer
Dim str_len As Integer

For i = 1 To str_len
value = value Xor (ch * 2 ^ shift1)
value = value Xor (ch * 2 ^ shift2)

' Change the shift offsets.
shift1 = (shift1 + 7) Mod 19
Debug.Print shift1
shift2 = (shift2 + 13) Mod 23
Debug.Print shift2
Next i
End Function

Private Sub cmdCipher_Click()
Dim cipher_text As String
txtCipher.Text = cipher_text
txtPlain.Text = ""
End Sub

Private Sub cmdDecipher_Click()
Dim plain_text As String
Dim cipher_text As String
txtPlain.Text = plain_text
txtCipher.Text = ""
End Sub

End Sub

cmdCipher.Enabled = True
cmdDecipher.Enabled = True
Else
cmdCipher.Enabled = False
cmdDecipher.Enabled = False
End If
End Sub
...全文
60 4 打赏 收藏 转发到动态 举报

4 条回复

heroren 2003-11-04
• 打赏
• 举报

kimurakenshin 2003-11-03
• 打赏
• 举报

kimurakenshin 2003-11-03
• 打赏
• 举报

yoki 2003-11-03
• 打赏
• 举报

7,768

• 近7日
• 近30日
• 至今