fb:porticula NoPaste
md5.bi für IDEA Crypto
Uploader: | Neo7530 |
Datum/Zeit: | 08.12.2011 18:32:48 |
'MD5Checksum
'Initialisierungskonstanten
#Define MD5_INIT_STATE_0 &H67452301
#Define MD5_INIT_STATE_1 &Hefcdab89
#Define MD5_INIT_STATE_2 &H98badcfe
#Define MD5_INIT_STATE_3 &H10325476
'Konstanten für den Transformationsprozess
#Define MD5_S11 7
#Define MD5_S12 12
#Define MD5_S13 17
#Define MD5_S14 22
#Define MD5_S21 5
#Define MD5_S22 9
#Define MD5_S23 14
#Define MD5_S24 20
#Define MD5_S31 4
#Define MD5_S32 11
#Define MD5_S33 16
#Define MD5_S34 23
#Define MD5_S41 6
#Define MD5_S42 10
#Define MD5_S43 15
#Define MD5_S44 21
'Transformierungskonstanten - Runde 1
#Define MD5_T01 &Hd76aa478 'Transformationskonstante 1
#Define MD5_T02 &He8c7b756 'Transformationskonstante 2
#Define MD5_T03 &H242070db 'Transformationskonstante 3
#Define MD5_T04 &Hc1bdceee 'Transformationskonstante 4
#Define MD5_T05 &Hf57c0faf 'Transformationskonstante 5
#Define MD5_T06 &H4787c62a 'Transformationskonstante 6
#Define MD5_T07 &Ha8304613 'Transformationskonstante 7
#Define MD5_T08 &Hfd469501 'Transformationskonstante 8
#Define MD5_T09 &H698098d8 'Transformationskonstante 9
#Define MD5_T10 &H8b44f7af 'Transformationskonstante 10
#Define MD5_T11 &Hffff5bb1 'Transformationskonstante 11
#Define MD5_T12 &H895cd7be 'Transformationskonstante 12
#Define MD5_T13 &H6b901122 'Transformationskonstante 13
#Define MD5_T14 &Hfd987193 'Transformationskonstante 14
#Define MD5_T15 &Ha679438e 'Transformationskonstante 15
#Define MD5_T16 &H49b40821 'Transformationskonstante 16
'Transformierungskonstanten - Runde 2
#Define MD5_T17 &Hf61e2562 'Transformationskonstante 17
#Define MD5_T18 &Hc040b340 'Transformationskonstante 18
#Define MD5_T19 &H265e5a51 'Transformationskonstante 19
#Define MD5_T20 &He9b6c7aa 'Transformationskonstante 20
#Define MD5_T21 &Hd62f105d 'Transformationskonstante 21
#Define MD5_T22 &H02441453 'Transformationskonstante 22
#Define MD5_T23 &Hd8a1e681 'Transformationskonstante 23
#Define MD5_T24 &He7d3fbc8 'Transformationskonstante 24
#Define MD5_T25 &H21e1cde6 'Transformationskonstante 25
#Define MD5_T26 &Hc33707d6 'Transformationskonstante 26
#Define MD5_T27 &Hf4d50d87 'Transformationskonstante 27
#Define MD5_T28 &H455a14ed 'Transformationskonstante 28
#Define MD5_T29 &Ha9e3e905 'Transformationskonstante 29
#Define MD5_T30 &Hfcefa3f8 'Transformationskonstante 30
#Define MD5_T31 &H676f02d9 'Transformationskonstante 31
#Define MD5_T32 &H8d2a4c8a 'Transformationskonstante 32
'Transformierungskonstanten - Runde 3
#Define MD5_T33 &Hfffa3942 'Transformationskonstante 33
#Define MD5_T34 &H8771f681 'Transformationskonstante 34
#Define MD5_T35 &H6d9d6122 'Transformationskonstante 35
#Define MD5_T36 &Hfde5380c 'Transformationskonstante 36
#Define MD5_T37 &Ha4beea44 'Transformationskonstante 37
#Define MD5_T38 &H4bdecfa9 'Transformationskonstante 38
#Define MD5_T39 &Hf6bb4b60 'Transformationskonstante 39
#Define MD5_T40 &Hbebfbc70 'Transformationskonstante 40
#Define MD5_T41 &H289b7ec6 'Transformationskonstante 41
#Define MD5_T42 &Heaa127fa 'Transformationskonstante 42
#Define MD5_T43 &Hd4ef3085 'Transformationskonstante 43
#Define MD5_T44 &H04881d05 'Transformationskonstante 44
#Define MD5_T45 &Hd9d4d039 'Transformationskonstante 45
#Define MD5_T46 &He6db99e5 'Transformationskonstante 46
#Define MD5_T47 &H1fa27cf8 'Transformationskonstante 47
#Define MD5_T48 &Hc4ac5665 'Transformationskonstante 48
'Transformierungskonstanten - Runde 4
#Define MD5_T49 &Hf4292244 'Transformationskonstante 49
#Define MD5_T50 &H432aff97 'Transformationskonstante 50
#Define MD5_T51 &Hab9423a7 'Transformationskonstante 51
#Define MD5_T52 &Hfc93a039 'Transformationskonstante 52
#Define MD5_T53 &H655b59c3 'Transformationskonstante 53
#Define MD5_T54 &H8f0ccc92 'Transformationskonstante 54
#Define MD5_T55 &Hffeff47d 'Transformationskonstante 55
#Define MD5_T56 &H85845dd1 'Transformationskonstante 56
#Define MD5_T57 &H6fa87e4f 'Transformationskonstante 57
#Define MD5_T58 &Hfe2ce6e0 'Transformationskonstante 58
#Define MD5_T59 &Ha3014314 'Transformationskonstante 59
#Define MD5_T60 &H4e0811a1 'Transformationskonstante 60
#Define MD5_T61 &Hf7537e82 'Transformationskonstante 61
#Define MD5_T62 &Hbd3af235 'Transformationskonstante 62
#Define MD5_T63 &H2ad7d2bb 'Transformationskonstante 63
#Define MD5_T64 &Heb86d391 'Transformationskonstante 64
'Null Daten (außer des ersten BYTE) werden benutzt, um die Prüfsummenberechnung zu beenden
Dim Shared As UByte PADDING(64) => { _
&H80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, _
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, _
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
'*******************************************************
#Define RotateLeft(x, n) ((x Shl n) Or (x Shr (32 - n)))
#Macro FF(a, b, c, d, x, s, t)
a += ((b And c) Or ((Not b) And d)) + x + t
a = RotateLeft(a, s) + b
#EndMacro
#Macro GG(a, b, c, d, x, s, t)
a += ((b And d) Or (c And (Not d))) + x + t
a = RotateLeft(a, s) + b
#EndMacro
#Macro HH(a, b, c, d, x, s, t)
a += (b Xor c Xor d) + x + t
a = RotateLeft(a, s) + b
#EndMacro
#Macro II(a, b, c, d, x, s, t)
a += (c Xor (b Or (Not d))) + x + t
a = RotateLeft(a, s) + b
#EndMacro
'*******************************************************
Type MD5Checksum
Public:
'Konstruktor/Destruktor
Declare Constructor()
Declare Destructor()
'RSA MD5 Implementierung
Declare Sub Transform(block As UByte Ptr)
Declare Sub Update(inpt As UByte Ptr, nInputLen As UInteger)
Declare Function Final() As String
Protected:
'Nebenfunktionen
Declare Sub UIntegerToUByte(outpt As UByte Ptr, inpt As UInteger Ptr, nLength As UInteger)
Declare Sub UByteToUInteger(outpt As UInteger Ptr, inpt As UByte Ptr, nLength As UInteger)
Private:
As UByte m_lpszBuffer(64) 'Eingabepuffer
As UInteger m_nCount(2) 'Anzahl der bits, modulo 2^64 (lsb zuerst)
As UInteger m_lMD5(4) 'MD5 Prüfsumme
End Type