![]() |
CMGDK r49-rc2
|
00001 # i f n d e f H G L _ M D 5 _ I N C L U D E 00002 00003 # d e f i n e H G L _ M D 5 _ I N C L U D E 00004 00005 00006 00007 n a m e s p a c e h g l 00008 00009 { 00010 00011 / * * 00012 00013 * ]wQ{| 00014 TW[zz< / p > 00015 00016 * 00017 TW[zzꁨR/T(uN(WNu 00018 TyQze(uNKbRhƋ 00019 00020 * / 00021 00022 n a m e s p a c e u t i l 00023 00024 { 00025 00026 t y p e d e f u n s i g n e d c h a r M D 5 C o d e [ 1 6 ] ; / / / < M D 5 x 00027 00028 00029 00030 s t r u c t M D 5 C o n t e x t ; 00031 00032 00033 00034 c l a s s M D 5 00035 00036 { 00037 00038 M D 5 C o n t e x t * c t x ; 00039 00040 00041 00042 p u b l i c : 00043 00044 00045 00046 M D 5 ( ) ; 00047 00048 v i r t u a l ~ M D 5 ( ) ; 00049 00050 00051 00052 v o i d I n i t ( ) ; / / / < RYS _Ym d 5 { 00053 00054 v o i d U p d a t e ( c o n s t v o i d * , s i z e _ t ) ; / / / < cNevpenc 00055 00056 v o i d G e t R e s u l t ( M D 5 C o d e & ) ; / / / < S_~g 00057 00058 } ; / / c l a s s M D 5 00059 00060 00061 00062 v o i d C o u n t M D 5 ( c o n s t v o i d * , s i z e _ t , M D 5 C o d e & ) ; 00063 00064 b o o l G e t M D 5 ( c o n s t w c h a r _ t * , M D 5 C o d e & ) ; 00065 00066 00067 00068 / * * 00069 00070 * \ N*NM D 5 W[&{2NlbcbM D 5 x 00071 00072 * @ p a r a m s t r M D 5 W[&{2N 00073 00074 * @ p a r a m m d 5 M D 5 xX[eQY 00075 00076 * / 00077 00078 t e m p l a t e < t y p e n a m e T > 00079 00080 v o i d S t r T o M D 5 ( c o n s t T * s t r , M D 5 C o d e & m d 5 ) 00081 00082 { 00083 00084 i n t i , j ; 00085 00086 T h e x s t r [ 1 6 ] = { ' 0 ' , ' 1 ' , ' 2 ' , ' 3 ' , ' 4 ' , ' 5 ' , ' 6 ' , ' 7 ' , ' 8 ' , ' 9 ' , ' A ' , ' B ' , ' C ' , ' D ' , ' E ' , ' F ' } ; 00087 00088 00089 00090 f o r ( i = 0 ; i < 1 6 ; i + + ) 00091 00092 { 00093 00094 f o r ( j = 0 ; j < 1 6 ; j + + ) i f ( s t r [ i * 2 ] = = h e x s t r [ j ] ) { m d 5 [ i ] = j * 1 6 ; b r e a k ; } 00095 00096 f o r ( j = 0 ; j < 1 6 ; j + + ) i f ( s t r [ i * 2 + 1 ] = = h e x s t r [ j ] ) { m d 5 [ i ] + = j ; b r e a k ; } 00097 00098 } 00099 00100 } 00101 00102 00103 00104 / * * 00105 00106 * \ N*NM D 5 xlbW[&{2N 00107 00108 * @ p a r a m m d 5 M D 5 x 00109 00110 * @ p a r a m s t r M D 5 W[&{2NX[eQY 00111 00112 * / 00113 00114 t e m p l a t e < t y p e n a m e T > 00115 00116 v o i d M D 5 T o S t r ( c o n s t M D 5 C o d e & m d 5 , T * s t r ) 00117 00118 { 00119 00120 i n t i ; 00121 00122 T h e x s t r [ 1 6 ] = { ' 0 ' , ' 1 ' , ' 2 ' , ' 3 ' , ' 4 ' , ' 5 ' , ' 6 ' , ' 7 ' , ' 8 ' , ' 9 ' , ' A ' , ' B ' , ' C ' , ' D ' , ' E ' , ' F ' } ; 00123 00124 00125 00126 f o r ( i = 0 ; i < 1 6 ; i + + ) 00127 00128 { 00129 00130 s t r [ i * 2 ] = h e x s t r [ ( m d 5 [ i ] & 0 x F 0 ) > > 4 ] ; 00131 00132 s t r [ i * 2 + 1 ] = h e x s t r [ m d 5 [ i ] & 0 x 0 F ] ; 00133 00134 } 00135 00136 00137 00138 s t r [ 3 2 ] = 0 ; 00139 00140 } 00141 00142 } / / n a m e s p a c e u t i l 00143 00144 00145 00146 u s i n g n a m e s p a c e u t i l ; 00147 00148 } / / n a m e s p a c e h g l 00149 00150 # e n d i f / / H G L _ M D 5 _ I N C L U D E 00151 00152