clsEncrypt.cls
上传用户:djzm888
上传日期:2013-02-15
资源大小:867k
文件大小:3k
源码类别:

其他数据库

开发平台:

Visual Basic

  1. VERSION 1.0 CLASS
  2. BEGIN
  3.   MultiUse = -1  'True
  4. END
  5. Attribute VB_Name = "clsEncrypt"
  6. Attribute VB_GlobalNameSpace = False
  7. Attribute VB_Creatable = True
  8. Attribute VB_PredeclaredId = False
  9. Attribute VB_Exposed = False
  10. Option Explicit
  11. '加密函数
  12. Public Function EncryptPassword(ByVal tempString As String) As String
  13.     Dim stri(11) As Integer
  14.     Dim PassString As String
  15.     Dim i As Long
  16.     Dim modval, quotient As Integer
  17.     For i = 0 To Len(Trim(tempString)) - 1
  18.         stri(i) = CInt(Asc(Mid(tempString, i + 1, 1)))
  19.     Next
  20.     Randomize
  21.     stri(11) = CInt(Rnd(1) * 17371)
  22.     Randomize
  23.     stri(10) = CInt(Rnd(1) * 13791)
  24.     Randomize
  25.     stri(9) = CInt(Rnd(1) * 11111)
  26.     
  27.     For i = 0 To 2
  28.         stri(0 + i) = (stri(0 + i) - i * 13733) Xor stri(9)
  29.         stri(i + 3) = (stri(i + 3) - i * 13733) Xor stri(10)
  30.         stri(i + 6) = (stri(i + 6) - i * 13733) Xor stri(11)
  31.     Next
  32.     
  33.     For i = 0 To 11
  34.         quotient = stri(i) And &HFF00
  35.         modval = stri(i) And &HFF
  36.         stri(i) = CInt((modval And &HF0) / &H10)
  37.         modval = modval And &HF
  38.         modval = modval * &H10 + stri(i)
  39.         stri(i) = modval + quotient
  40.     Next
  41.     
  42.     PassString = stri(0)
  43.     For i = 1 To 11
  44.         PassString = PassString & "#" & CStr(stri(i))
  45.     Next
  46.     EncryptPassword = PassString
  47. End Function
  48. '解密函数
  49. Public Function DisencryptPassword(tempString As String) As String
  50.     Dim i, StartPosition, EndPosition As Integer
  51.     Dim stri(11) As Integer
  52.     Dim freeString As String
  53.     Dim quotient, modval As Integer
  54.     Dim ErrFlag As Boolean
  55.     ErrFlag = False
  56.     StartPosition = 1
  57.     For i = 0 To 10
  58.         EndPosition = InStr(StartPosition, tempString, "#")
  59.         If EndPosition = 0 Or EndPosition = Null Then
  60.             ErrFlag = True
  61.             Exit For
  62.         End If
  63.         stri(i) = CInt(Mid(tempString, StartPosition, EndPosition - StartPosition))
  64.         StartPosition = EndPosition + 1
  65.     Next
  66.     If Not ErrFlag Then
  67.         stri(11) = CInt(Mid(tempString, StartPosition, Len(tempString) + 1 - StartPosition))
  68.     Else
  69.         MsgBox "dkdk", vbCritical + vbSystemModal
  70.         End
  71.     End If
  72.     '------------------------------------------------------------------
  73.     For i = 0 To 11
  74.         quotient = stri(i) And &HFF00
  75.         modval = stri(i) And &HFF
  76.         stri(i) = CInt((modval And &HF0) / &H10)
  77.         modval = modval And &HF
  78.         modval = modval * &H10 + stri(i)
  79.         stri(i) = modval + quotient
  80.     Next
  81.     For i = 0 To 2
  82.         stri(0 + i) = (stri(0 + i) Xor stri(9)) + i * 13733
  83.         stri(i + 3) = (stri(i + 3) Xor stri(10)) + i * 13733
  84.         stri(i + 6) = (stri(i + 6) Xor stri(11)) + i * 13733
  85.     Next
  86.     freeString = Empty
  87.     For i = 0 To 7
  88.         If stri(i) = 0 Then Exit For
  89.         freeString = freeString & Chr(stri(i))
  90.     Next
  91.     DisencryptPassword = Trim(freeString)
  92.     
  93. End Function