青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

君子性非異也,善假于物也。

如有恒,何須三更起,半夜眠;最怕莫,三天打魚兩天曬網(wǎng),竹籃打水一場空!
posts - 31, comments - 23, trackbacks - 0, articles - 30
  C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

用C描述MD5算法

Posted on 2006-11-09 20:54 neter 閱讀(452) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 程序設(shè)計(jì)
http://www.ietf.org/rfc/rfc1321.txt?此為rfc1321.txt

??1#include?<stdio.h>
??2
??3typedef?struct?{
??4
??5????unsigned?int?state[4];??????
??6
??7????unsigned?int?count[2];??????
??8
??9????unsigned?char?buffer[64];??????
?10
?11}
?MD5Context;
?12
?13?
?14
?15void?MD5_Init(MD5Context?*?context);
?16
?17void?MD5_Update(MD5Context?*?context,?unsigned?char?*?buf,?int?len);
?18
?19void?MD5_Final(MD5Context?*?context,?unsigned?char?digest[16]);
?20
?21#define?S11?7
?22
?23#define?S12?12
?24
?25#define?S13?17
?26
?27#define?S14?22
?28
?29#define?S21?5
?30
?31#define?S22?9
?32
?33#define?S23?14
?34
?35#define?S24?20
?36
?37#define?S31?4
?38
?39#define?S32?11
?40
?41#define?S33?16
?42
?43#define?S34?23
?44
?45#define?S41?6
?46
?47#define?S42?10
?48
?49#define?S43?15
?50
?51#define?S44?21
?52
?53?
?54
?55static?unsigned?char?PADDING[64]?=
?56
?57{
?58
?59????0x80,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,
?60
?61????0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,
?62
?63????0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0
?64
?65}
;
?66
?67#define?F(x,?y,?z)?(((x)?&?(y))?|?((~x)?&?(z)))
?68
?69#define?G(x,?y,?z)?(((x)?&?(z))?|?((y)?&?(~z)))
?70
?71#define?H(x,?y,?z)?((x)?^?(y)?^?(z))
?72
?73#define?I(x,?y,?z)?((y)?^?((x)?|?(~z)))
?74
?75?
?76
?77#define?ROTATE_LEFT(x,?n)?(((x)?<<?(n))?|?((x)?>>?(32-(n))))
?78
?79?
?80
?81#define?FF(a,?b,?c,?d,?x,?s,?ac)??????????\
?82
?83????{???????????????????????\
?84
?85????(a)?+=?F((b),?(c),?(d))?+?(x)?+?(unsigned?int)(ac);??\
?86
?87????(a)?=?ROTATE_LEFT((a),?(s));???????????\
?88
?89????(a)?+=?(b);?????????????????\
?90
?91????}

?92
?93?
?94
?95#define?GG(a,?b,?c,?d,?x,?s,?ac)??????????\
?96
?97????{???????????????????????\
?98
?99????(a)?+=?G((b),?(c),?(d))?+?(x)?+?(unsigned?int)(ac);??\
100
101????(a)?=?ROTATE_LEFT((a),?(s));???????????\
102
103????(a)?+=?(b);?????????????????\
104
105????}

106
107?
108
109#define?HH(a,?b,?c,?d,?x,?s,?ac)??????????\
110
111????{???????????????????????\
112
113????(a)?+=?H((b),?(c),?(d))?+?(x)?+?(unsigned?int)(ac);??\
114
115????(a)?=?ROTATE_LEFT((a),?(s));???????????\
116
117????(a)?+=?(b);?????????????????\
118
119????}

120
121?
122
123#define?II(a,?b,?c,?d,?x,?s,?ac)??????????\
124
125????{???????????????????????\
126
127????(a)?+=?I((b),?(c),?(d))?+?(x)?+?(unsigned?int)(ac);??\
128
129????(a)?=?ROTATE_LEFT((a),?(s));???????????\
130
131????(a)?+=?(b);?????????????????\
132
133????}

134
135static?void?MD5_Encode(unsigned?char?*?output,?unsigned?int?*?input,?int?len)
136
137{
138
139????unsigned?int?i,?j;
140
141?
142
143????for?(i?=?0,?j?=?0;?j?<?len;?i++,?j?+=?4)?
144
145????{
146
147???????output[j]?=?(unsigned?char)?(input[i]?&?0xff);
148
149???????output[j?+?1]?=?(unsigned?char)?((input[i]?>>?8)?&?0xff);
150
151???????output[j?+?2]?=?(unsigned?char)?((input[i]?>>?16)?&?0xff);
152
153???????output[j?+?3]?=?(unsigned?char)?((input[i]?>>?24)?&?0xff);
154
155????}

156
157}

158
159?
160
161static?void?MD5_Decode(unsigned?int?*?output,?unsigned?char?*?input,?int?len)
162
163{
164
165????unsigned?int?i,?j;
166
167?
168
169????for?(i?=?0,?j?=?0;?j?<?len;?i++,?j?+=?4)
170
171????{
172
173???????output[i]?=?((unsigned?int)?input[j])?|
174
175???????????(((unsigned?int)?input[j?+?1])?<<?8)?|
176
177???????????(((unsigned?int)?input[j?+?2])?<<?16)?|
178
179???????????(((unsigned?int)?input[j?+?3])?<<?24);
180
181????}

182
183}

184
185?
186
187static?void?MD5_Transform(unsigned?int?state[4],?unsigned?char?block[64])
188
189{
190
191????unsigned?int?a?=?state[0],?b?=?state[1],?c?=?state[2],?d?=?state[3],?x[16];
192
193?
194
195????MD5_Decode(x,?block,?64);
196
197?
198
199????/*?Round?1?*/
200
201????FF(a,?b,?c,?d,?x[0],?S11,?0xd76aa478);????/*?1?*/
202
203????FF(d,?a,?b,?c,?x[1],?S12,?0xe8c7b756);????/*?2?*/
204
205????FF(c,?d,?a,?b,?x[2],?S13,?0x242070db);????/*?3?*/
206
207????FF(b,?c,?d,?a,?x[3],?S14,?0xc1bdceee);????/*?4?*/
208
209????FF(a,?b,?c,?d,?x[4],?S11,?0xf57c0faf);????/*?5?*/
210
211????FF(d,?a,?b,?c,?x[5],?S12,?0x4787c62a);????/*?6?*/
212
213????FF(c,?d,?a,?b,?x[6],?S13,?0xa8304613);????/*?7?*/
214
215????FF(b,?c,?d,?a,?x[7],?S14,?0xfd469501);????/*?8?*/
216
217????FF(a,?b,?c,?d,?x[8],?S11,?0x698098d8);????/*?9?*/
218
219????FF(d,?a,?b,?c,?x[9],?S12,?0x8b44f7af);????/*?10?*/
220
221????FF(c,?d,?a,?b,?x[10],?S13,?0xffff5bb1);???/*?11?*/
222
223????FF(b,?c,?d,?a,?x[11],?S14,?0x895cd7be);???/*?12?*/
224
225????FF(a,?b,?c,?d,?x[12],?S11,?0x6b901122);???/*?13?*/
226
227????FF(d,?a,?b,?c,?x[13],?S12,?0xfd987193);???/*?14?*/
228
229????FF(c,?d,?a,?b,?x[14],?S13,?0xa679438e);???/*?15?*/
230
231????FF(b,?c,?d,?a,?x[15],?S14,?0x49b40821);???/*?16?*/
232
233?
234
235????/*?Round?2?*/
236
237????GG(a,?b,?c,?d,?x[1],?S21,?0xf61e2562);????/*?17?*/
238
239????GG(d,?a,?b,?c,?x[6],?S22,?0xc040b340);????/*?18?*/
240
241????GG(c,?d,?a,?b,?x[11],?S23,?0x265e5a51);???/*?19?*/
242
243????GG(b,?c,?d,?a,?x[0],?S24,?0xe9b6c7aa);????/*?20?*/
244
245????GG(a,?b,?c,?d,?x[5],?S21,?0xd62f105d);????/*?21?*/
246
247????GG(d,?a,?b,?c,?x[10],?S22,?0x2441453);????/*?22?*/
248
249????GG(c,?d,?a,?b,?x[15],?S23,?0xd8a1e681);???/*?23?*/
250
251????GG(b,?c,?d,?a,?x[4],?S24,?0xe7d3fbc8);????/*?24?*/
252
253????GG(a,?b,?c,?d,?x[9],?S21,?0x21e1cde6);????/*?25?*/
254
255????GG(d,?a,?b,?c,?x[14],?S22,?0xc33707d6);???/*?26?*/
256
257????GG(c,?d,?a,?b,?x[3],?S23,?0xf4d50d87);????/*?27?*/
258
259????GG(b,?c,?d,?a,?x[8],?S24,?0x455a14ed);????/*?28?*/
260
261????GG(a,?b,?c,?d,?x[13],?S21,?0xa9e3e905);???/*?29?*/
262
263????GG(d,?a,?b,?c,?x[2],?S22,?0xfcefa3f8);????/*?30?*/
264
265????GG(c,?d,?a,?b,?x[7],?S23,?0x676f02d9);????/*?31?*/
266
267????GG(b,?c,?d,?a,?x[12],?S24,?0x8d2a4c8a);???/*?32?*/
268
269?
270
271????/*?Round?3?*/
272
273????HH(a,?b,?c,?d,?x[5],?S31,?0xfffa3942);????/*?33?*/
274
275????HH(d,?a,?b,?c,?x[8],?S32,?0x8771f681);????/*?34?*/
276
277????HH(c,?d,?a,?b,?x[11],?S33,?0x6d9d6122);???/*?35?*/
278
279????HH(b,?c,?d,?a,?x[14],?S34,?0xfde5380c);???/*?36?*/
280
281????HH(a,?b,?c,?d,?x[1],?S31,?0xa4beea44);????/*?37?*/
282
283????HH(d,?a,?b,?c,?x[4],?S32,?0x4bdecfa9);????/*?38?*/
284
285????HH(c,?d,?a,?b,?x[7],?S33,?0xf6bb4b60);????/*?39?*/
286
287????HH(b,?c,?d,?a,?x[10],?S34,?0xbebfbc70);???/*?40?*/
288
289????HH(a,?b,?c,?d,?x[13],?S31,?0x289b7ec6);???/*?41?*/
290
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产欧美一区二区三区久久人妖| 亚洲国产精品va在线看黑人 | 99国产精品国产精品毛片| 国产日韩欧美一区二区三区在线观看 | 国产一区二区三区黄| 国产伦精品一区二区三区免费迷| 国产精品理论片在线观看| 国产精品swag| 国产精品美女久久久久av超清| 国产精品理论片在线观看| 国产日韩综合| 亚洲电影自拍| 国产精品99久久不卡二区| 亚洲免费在线视频| 久久精品综合一区| 亚洲人成人一区二区在线观看 | 久久精品久久99精品久久| 久久综合九色99| 欧美精品在线播放| 国产精品高潮呻吟久久av无限| 国产欧美丝祙| 亚洲精品欧美激情| 久久精品99无色码中文字幕 | 99视频在线精品国自产拍免费观看 | 欧美亚洲一区三区| 欧美.com| 一区二区三区日韩在线观看| 羞羞视频在线观看欧美| 久久午夜电影网| 国产精品chinese| 亚洲第一毛片| 午夜精品视频在线| 亚洲国产老妈| 久久久xxx| 国产精品国产a级| 最新精品在线| 乱中年女人伦av一区二区| 夜夜夜精品看看| 免费观看久久久4p| 好看不卡的中文字幕| 午夜精品电影| 日韩视频中午一区| 欧美极品一区| 亚洲国产精品一区二区尤物区| 午夜在线a亚洲v天堂网2018| 亚洲人成啪啪网站| 欧美99久久| 永久久久久久| 久久综合网hezyo| 久久不射中文字幕| 国产日韩欧美在线观看| 亚洲欧美日韩区| 一本大道久久a久久精二百| 欧美aⅴ一区二区三区视频| 在线播放精品| 美女视频一区免费观看| 久久精品国产视频| 很黄很黄激情成人| 久久久噜噜噜久久狠狠50岁| 午夜国产不卡在线观看视频| 国产精品裸体一区二区三区| 亚洲一区二区成人在线观看| 99国产精品99久久久久久粉嫩| 欧美国产第一页| 亚洲美女视频在线观看| 亚洲国产精品一区| 欧美日韩国产综合一区二区| 99精品欧美一区二区三区| 91久久精品国产91久久性色tv| 欧美成人精品福利| 亚洲免费精彩视频| 99视频精品在线| 国产精品毛片高清在线完整版| 亚洲欧美亚洲| 欧美在线观看天堂一区二区三区| 国产日韩欧美在线播放不卡| 久久久久成人网| 久久在线91| 亚洲图片在线观看| 欧美日韩ab| 亚洲欧美国产一区二区三区| 亚洲国产毛片完整版| 欧美久久久久久蜜桃| 亚洲欧美日韩国产成人精品影院| 亚洲一区精彩视频| 狠狠色丁香婷综合久久| 亚洲动漫精品| 欧美香蕉大胸在线视频观看| 欧美一区二区在线观看| 久久婷婷久久| 亚洲天堂免费观看| 香蕉成人久久| 亚洲人成网站在线播| 亚洲天堂网在线观看| 狠狠噜噜久久| 亚洲精品中文在线| 国产欧美在线视频| 亚洲国内精品| 国产亚洲欧美日韩日本| 亚洲国产另类久久精品| 国产视频一区在线观看| 亚洲日韩欧美视频| 国产综合香蕉五月婷在线| 亚洲美女一区| 影音先锋日韩有码| 香蕉尹人综合在线观看| 日韩图片一区| 久久精品国产99| 正在播放日韩| 美女网站久久| 久久久久久久网站| 国产精品人人做人人爽人人添| 亚洲福利视频网| 国产一区91| 亚洲一区二区三区乱码aⅴ蜜桃女| 亚洲国产婷婷香蕉久久久久久99| 亚洲女性裸体视频| 一道本一区二区| 男女视频一区二区| 老司机成人在线视频| 国产欧美日韩伦理| 在线视频日韩精品| 一区二区三区精密机械公司 | 女同一区二区| 国产亚洲欧美一区在线观看| 亚洲精品小视频在线观看| 亚洲第一综合天堂另类专| 午夜精品久久| 午夜一区二区三区不卡视频| 欧美日韩网址| 亚洲狼人精品一区二区三区| 亚洲人体影院| 欧美福利影院| 亚洲黄色免费| 亚洲美女av黄| 欧美日韩在线播放一区| 日韩亚洲国产精品| 亚洲在线播放| 国产欧美一区二区白浆黑人| 午夜精品偷拍| 久久久精品一区| 在线看视频不卡| 欧美精品乱码久久久久久按摩| 老鸭窝亚洲一区二区三区| 国产一区二区三区网站| 久久精品国产视频| 欧美gay视频| 亚洲精品国产精品久久清纯直播 | 久久精品综合网| 久久综合色播五月| 亚洲成人原创| 欧美激情综合| 亚洲色图在线视频| 国产精品久久久999| 亚洲午夜未删减在线观看| 欧美一区二区成人| 国产午夜精品麻豆| 久久人人97超碰精品888| 欧美~级网站不卡| 91久久久久| 国产精品久久久久久久久免费樱桃 | 亚洲国产精品成人| 在线一区二区日韩| 国产精品中文字幕欧美| 久久久久成人精品| 亚洲日本电影在线| 国产日韩视频| 久久另类ts人妖一区二区 | 亚洲永久免费av| 男女激情视频一区| 亚洲美洲欧洲综合国产一区| 国产精品高潮久久| 久久久之久亚州精品露出| 亚洲日本黄色| 久久se精品一区二区| 亚洲日本视频| 国产精品高清一区二区三区| 久久人人爽爽爽人久久久| 亚洲狠狠婷婷| 欧美一级理论片| 亚洲精品乱码久久久久久蜜桃麻豆| 欧美日韩激情小视频| 性色av一区二区三区| 亚洲国产视频一区二区| 国产精品女主播一区二区三区| 亚洲成人自拍视频| 亚洲视频一区二区免费在线观看| 国产欧美一区二区三区在线看蜜臀 | 在线亚洲欧美专区二区| 久久在线91| 亚洲男人的天堂在线| 亚洲激情视频网站| 国产亚洲欧美日韩精品| 欧美日韩国产专区| 欧美国产第一页| 欧美a级片网站| 久久久国产精彩视频美女艺术照福利| 美女脱光内衣内裤视频久久影院 | 亚洲一区二区免费| 亚洲黑丝在线|