VBMD5加密类模块整理Word文档格式.docx
- 文档编号:7064334
- 上传时间:2023-05-07
- 格式:DOCX
- 页数:14
- 大小:16.66KB
VBMD5加密类模块整理Word文档格式.docx
《VBMD5加密类模块整理Word文档格式.docx》由会员分享,可在线阅读,更多相关《VBMD5加密类模块整理Word文档格式.docx(14页珍藏版)》请在冰点文库上搜索。
0OriShiftBits>
31Then
Err.Raise6
If(lvaluesAndm_l2Power(31-iShiftBits))Then
LShift=((lvaluesAndm_lOnBits(31-(iShiftBits+1)))
*m_l2Power(iShiftBits))Or&
LShift=((lvaluesAndm_lOnBits(31-iShiftBits))*
m_l2Power(iShiftBits))
PrivateFunctionRShift(lvalues,iShiftBits)
RShift=lvalues
IflvaluesAnd&
H80000000Then
RShift=1
RShift=0
RShift=(lvaluesAnd&
H7FFFFFFE)\m_l2Power(iShiftBits)
If(lvaluesAnd&
H80000000)Then
RShift=(RShiftOr(&
H40000000\m_l2Power(iShiftBits
-1)))
PrivateFunctionRotateLeft(lvalues,iShiftBits)
RotateLeft=LShift(lvalues,iShiftBits)OrRShift(lvalues,(32-iShiftBits))
PrivateFunctionAddUnsigned(Lx,lY)
DimlX4
DimlY4
DimlX8
DimlY8
DimlResult
lX8=LxAnd&
lY8=lYAnd&
lX4=LxAnd&
H40000000
lY4=lYAnd&
lResult=(LxAnd&
H3FFFFFFF)+(lYAnd&
H3FFFFFFF)
IflX4AndlY4Then
lResult=lResultXor&
H80000000XorlX8XorlY8
ElseIflX4OrlY4Then
IflResultAnd&
H40000000Then
HC0000000XorlX8XorlY8
H40000000XorlX8XorlY8
lResult=lResultXorlX8XorlY8
AddUnsigned=lResult
PrivateFunctionmd5_F(x,y,z)
md5_F=(xAndy)Or((Notx)Andz)EndFunction
PrivateFunctionmd5_G(x,y,z)
md5_G=(xAndz)Or(yAnd(Notz))EndFunction
PrivateFunctionmd5_H(x,y,z)
md5_H=(xXoryXorz)
PrivateFunctionmd5_I(x,y,z)
md5_I=(yXor(xOr(Notz)))EndFunction
PrivateSubmd5_FF(a,b,c,d,x,s,ac)
a=AddUnsigned(a,AddUnsigned(AddUnsigned(md5_F(b,c,d),
x),ac))
a=RotateLeft(a,s)
a=AddUnsigned(a,b)
EndSub
PrivateSubmd5_GG(a,b,c,d,x,s,ac)
a=AddUnsigned(a,AddUnsigned(AddUnsigned(md5_G(b,c,d),
PrivateSubmd5_HH(a,b,c,d,x,s,ac)
a=AddUnsigned(a,AddUnsigned(AddUnsigned(md5_H(b,c,d),
PrivateSubmd5_II(a,b,c,d,x,s,ac)
a=AddUnsigned(a,AddUnsigned(AddUnsigned(md5_I(b,c,d),
PrivateFunctionConvertToWordArray(sMessage)
DimlMessageLength
DimlNumberOfWords
DimlWordArray()
DimlBytePosition
DimlByteCount
DimlWordCount
ConstMODULUS_BITS=512
ConstCONGRUENT_BITS=448
lMessageLength=Len(sMessage)
lNumberOfWords=(((lMessageLength+((MODULUS_BITS-
CONGRUENT_BITS)\BITS_TO_A_BYTE))\(MODULUS_BITS\
BITS_TO_A_BYTE))+1)*(MODULUS_BITS\BITS_TO_A_WORD)
ReDimlWordArray(lNumberOfWords-1)
lBytePosition=0
lByteCount=0
DoUntillByteCount>
=lMessageLength
lWordCount=lByteCount\BYTES_TO_A_WORD
lBytePosition=(lByteCountModBYTES_TO_A_WORD)*BITS_TO_A_BYTE
lWordArray(lWordCount)=lWordArray(lWordCount)OrLShift(Asc(Mid(sMessage,lByteCount+1,1)),lBytePosition)
lByteCount=lByteCount+1
Loop
lWordCount=lByteCount\BYTES_TO_A_WORD
lWordArray(lWordCount)=lWordArray(lWordCount)OrLShift(&
H80,lBytePosition)
lWordArray(lNumberOfWords-2)=LShift(lMessageLength,3)
lWordArray(lNumberOfWords-1)=RShift(lMessageLength,29)
ConvertToWordArray=lWordArray
PrivateFunctionWordToHex(lvalues)
DimlByte
DimlCount
ForlCount=0To3
lByte=RShift(lvalues,lCount*BITS_TO_A_BYTE)And
m_lOnBits(BITS_TO_A_BYTE-1)
WordToHex=WordToHex&
RightNew("
0"
&
Hex(lByte),2)
Next
'
|MD5函数
PublicFunctionMD5string(ByValsMessageAsString,Optional
ByValstypeAsInteger=16)AsString
m_lOnBits(0)=CLng
(1)
m_lOnBits
(1)=CLng(3)
m_lOnBits
(2)=CLng(7)
m_lOnBits(3)=CLng(15)
m_lOnBits(4)=CLng(31)
m_lOnBits(5)=CLng(63)
m_lOnBits(6)=CLng(127)
m_lOnBits(7)=CLng(255)
m_lOnBits(8)=CLng(511)
m_lOnBits(9)=CLng(1023)
m_lOnBits(10)=CLng(2047)
m_lOnBits(11)=CLng(4095)
m_lOnBits(12)=CLng(8191)
m_lOnBits(13)=CLng(16383)
m_lOnBits(14)=CLng(32767)
m_lOnBits(15)=CLng(65535)
m_lOnBits(16)=CLng(131071)
m_lOnBits(17)=CLng(262143)
m_lOnBits(18)=CLng(524287)
m_lOnBits(19)=CLng(1048575)
m_lOnBits(20)=CLng(2097151)
m_lOnBits(21)=CLng(4194303)
m_lOnBits(22)=CLng(8388607)
m_lOnBits(23)=CLng(16777215)
m_lOnBits(24)=CLng(33554431)
m_lOnBits(25)=CLng(67108863)
m_lOnBits(26)=CLng(134217727)
m_lOnBits(27)=CLng(268435455)
m_lOnBits(28)=CLng(536870911)
m_lOnBits(29)=CLng(1073741823)
m_lOnBits(30)=CLng(2147483647)
m_l2Power(0)=CLng
(1)
m_l2Power
(1)=CLng
(2)
m_l2Power
(2)=CLng(4)
m_l2Power(3)=CLng(8)
m_l2Power(4)=CLng(16)
m_l2Power(5)=CLng(32)
m_l2Power(6)=CLng(64)
m_l2Power(7)=CLng(128)
m_l2Power(8)=CLng(256)
m_l2Power(9)=CLng(512)
m_l2Power(10)=CLng(1024)
m_l2Power(11)=CLng(2048)
m_l2Power(12)=CLng(4096)
m_l2Power(13)=CLng(8192)
m_l2Power(14)=CLng(16384)
m_l2Power(15)=CLng(32768)
m_l2Power(16)=CLng(65536)
m_l2Power(17)=CLng(131072)
m_l2Power(18)=CLng(262144)
m_l2Power(19)=CLng(524288)
m_l2Power(20)=CLng(1048576)
m_l2Power(21)=CLng(2097152)
m_l2Power(22)=CLng(4194304)
m_l2Power(23)=CLng(8388608)
m_l2Power(24)=CLng(16777216)
m_l2Power(25)=CLng(33554432)
m_l2Power(26)=CLng(67108864)
m_l2Power(27)=CLng(134217728)
m_l2Power(28)=CLng(268435456)
m_l2Power(29)=CLng(536870912)
m_l2Power(30)=CLng(1073741824)
Dimx
Dimk
Dimaa
DimBB
DimCC
Dimdd
Dima
Dimb
Dimc
Dimd
ConstS11=7
ConstS12=12
ConstS13=17
ConstS14=22
ConstS21=5
ConstS22=9
ConstS23=14
ConstS24=20
ConstS31=4
ConstS32=11
ConstS33=16
ConstS34=23
ConstS41=6
ConstS42=10
ConstS43=15
ConstS44=21
x=ConvertToWordArray(sMessage)
a=&
H67452301
b=&
HEFCDAB89
c=&
H98BADCFE
d=&
H10325476
Fork=0ToUBound(x)Step16
aa=a
BB=b
CC=c
dd=d
md5_FFa,b,c,d,x(k+0),S11,&
HD76AA478
md5_FFd,a,b,c,x(k+1),S12,&
HE8C7B756
md5_FFc,d,a,b,x(k+2),S13,&
H242070DB
md5_FFb,c,d,a,x(k+3),S14,&
HC1BDCEEE
md5_FFa,b,c,d,x(k+4),S11,&
HF57C0FAF
md5_FFd,a,b,c,x(k+5),S12,&
H4787C62A
md5_FFc,d,a,b,x(k+6),S13,&
HA8304613
md5_FFb,c,d,a,x(k+7),S14,&
HFD469501
md5_FFa,b,c,d,x(k+8),S11,&
H698098D8
md5_FFd,a,b,c,x(k+9),S12,&
H8B44F7AF
md5_FFc,d,a,b,x(k+10),S13,&
HFFFF5BB1
md5_FFb,c,d,a,x(k+11),S14,&
H895CD7BE
md5_FFa,b,c,d,x(k+12),S11,&
H6B901122
md5_FFd,a,b,c,x(k+13),S12,&
HFD987193
md5_FFc,d,a,b,x(k+14),S13,&
HA679438E
md5_FFb,c,d,a,x(k+15),S14,&
H49B40821
md5_GGa,b,c,d,x(k+1),S21,&
HF61E2562
md5_GGd,a,b,c,x(k+6),S22,&
HC040B340
md5_GGc,d,a,b,x(k+11),S23,&
H265E5A51
md5_GGb,c,d,a,x(k+0),S24,&
HE9B6C7AA
md5_GGa,b,c,d,x(k+5),S21,&
HD62F105D
md5_GGd,a,b,c,x(k+10),S22,&
H2441453
md5_GGc,d,a,b,x(k+15),S23,&
HD8A1E681
md5_GGb,c,d,a,x(k+4),S24,&
HE7D3FBC8
md5_GGa,b,c,d,x(k+9),S21,&
H21E1CDE6
md5_GGd,a,b,c,x(k+14),S22,&
HC33707D6
md5_GGc,d,a,b,x(k+3),S23,&
HF4D50D87
md5_GGb,c,d,a,x(k+8),S24,&
H455A14ED
md5_GGa,b,c,d,x(k+13),S21,&
HA9E3E905
md5_GGd,a,b,c,x(k+2),S22,&
HFCEFA3F8
md5_GGc,d,a,b,x(k+7),S23,&
H676F02D9
md5_GGb,c,d,a,x(k+12),S24,&
H8D2A4C8A
md5_HHa,b,c,d,x(k+5),S31,&
HFFFA3942
md5_HHd,a,b,c,x(k+8),S32,&
H8771F681
md5_HHc,d,a,b,x(k+11),S33,&
H6D9D6122
md5_HHb,c,d,a,x(k+14),S34,&
HFDE5380C
md5_HHa,b,c,d,x(k+1),S31,&
HA4BEEA44
md5_HHd,a,b,c,x(k+4),S32,&
H4BDECFA9
md5_HHc,d,a,b,x(k+7),S33,&
HF6BB4B60
md5_HHb,c,d,a,x(k+10),S34,&
HBEBFBC70
md5_HHa,b,c,d,x(k+13),S31,&
H289B7EC6
md5_HHd,a,b,c,x(k+0),S32,&
HEAA127FA
md5_HHc,d,a,b,x(k+3),S33,&
HD4EF3085
md5_HHb,c,d,a,x(k+6),S34,&
H4881D05
md5_HHa,b,c,d,x(k+9),S31,&
HD9D4D039
md5_HHd,a,b,c,x(k+12),S32,&
HE6DB99E5
md5_HHc,d,a,b,x(k+15),S33,&
H1FA27CF8
md5_HHb,c,d,a,x(k+2),S34,&
HC4AC5665
md5_IIa,b,c,d,x(k+0),S41,&
HF4292244
md5_IId,a,b,c,x(k+7),S42,&
H432AFF97
md5_IIc,d,a,b,x(k+14),S43,&
HAB9423A7
md5_IIb,c,d,a,x(k+5),S44,&
HFC93A039
md5_IIa,b,c,d,x(k+12),S41,&
H655B59C3
md5_IId,a,b,c,x(k+3),S42,&
H8F0CC
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VBMD5 加密 模块 整理