设计一个口令加密程序.口令由字母构成,将输入的每个字母循环左移2个字母(区分大小写),如下图: 
明文: A B C … X Y Z 
密码: Y Z A … V W X 
运行界面如下: 
明文:PassWord 
密码:NyqqUmpb 
那位高人会啊.?指点哈..谢了...

解决方案 »

  1.   

    Private Sub Form_Load()
    Dim arr
    Dim s, s1 As String
    Dim i, p As Integer
    arr = Array("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z")
    MW = "PassWord"
    For i = 1 To Len(MW)
    s = Mid(MW, i, 1)
    Debug.Print s
    For j = 0 To UBound(arr)If arr(j) = LCase(s) Then p = j - 2
    If p < 0 Then p = 27 + p
    If p > 26 Then p = p - 27
    Next
    Debug.Print p
    If Asc(s) < 97 Then
    s1 = s1 & UCase(arr(p))
    Else
    s1 = s1 & arr(p)
    End IfNext
    MsgBox s1
    End Sub
      

  2.   

    利用ASCII 字符集,A-Z是65-90,a-z是97-122,首先得到密码的长度,然后循环处理每个字符Asc(),得到一个数字,该数字减2即为你所需要的密文数字,只是在减后小于65或97时要处理一下即可,最后用chr()得到密文字符。
      

  3.   

    Dim a As String
    Dim b As String
    Dim pasw As String
    pasw = "abcde"
    a = Right(pasw, 2)
    b = Left(pasw, Len(pasw) - 2)
    pasw = a & b
    Debug.Print pasw
      

  4.   

    Private Sub Form_Load()
    Dim arr
    Dim s, s1 As String
    Dim i, p As Integer
    MW = "PassWord"
    For i = 1 To Len(MW)
    s = Mid(MW, i, 1)
    Select Case Asc(s)
    Case 65 To 90
    p = Asc(s) - 2
    If p < 65 Then p = 90 + p - 64
    Case 97 To 122
    p = Asc(s) - 2
    If p < 97 Then p = 122 + p - 96
    End Select
    Debug.Print Chr$(p)
    s1 = s1 & Chr$(p)
    Next
    MsgBox s1
    End Sub