Buchempfehlung
MySQL kurz & gut
MySQL kurz & gut
Das preiswerte Taschen- buch stellt MySQL-rele- vante Inhalte systematisch und knapp dar, sodass es sich optimal zum Nach- schlagen beim Pro- grammieren eignet. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

fb:porticula NoPaste

Info
Info / Hilfe
Liste
Übersicht / Liste
Neu
Datei hochladen
Suche
Quellcode suchen
Download
Dateidownload

md5.bi für IDEA Crypto

Uploader:MitgliedNeo7530
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