VB6.0中实现MD5加密算法代码

2026-03-23
代码(测试通过):
  Private Const BITS_TO_A_BYTE = 8
  Private Const BYTES_TO_A_WORD = 4
  Private Const BITS_TO_A_WORD = 32
  Private m_lOnBits(30)
  Private m_l2Power(30)
  Private Function LShift(lValue, iShiftBits)
  If iShiftBits = 0 Then
  LShift = lValue
  Exit Function
  ElseIf iShiftBits = 31 Then
  If lValue And 1 Then
  LShift = &H80000000
  Else
  LShift = 0
  End If
  Exit Function
  ElseIf iShiftBits < 0 Or iShiftBits > 31 Then
  Err.Raise 6
  End If
  If (lValue And m_l2Power(31 - iShiftBits)) Then
  LShift = ((lValue And m_lOnBits(31 - (iShiftBits + 1))) * m_l2Power(iShiftBits)) Or &H80000000
  Else
  LShift = ((lValue And m_lOnBits(31 - iShiftBits)) * m_l2Power(iShiftBits))
  End If
  End Function
  Private Function RShift(lValue, iShiftBits)
  If iShiftBits = 0 Then
  RShift = lValue
  Exit Function
  ElseIf iShiftBits = 31 Then
  If lValue And &H80000000 Then
  RShift = 1
  Else
  RShift = 0
  End If
  Exit Function
  ElseIf iShiftBits < 0 Or iShiftBits > 31 Then
  Err.Raise 6
  End If