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

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

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

用C描述MD5算法

Posted on 2006-11-09 20:54 neter 閱讀(452) 評論(0)  編輯 收藏 引用 所屬分類: 程序設計
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>
            久久精品国产综合| 亚洲午夜电影| 亚洲日本电影在线| 国产欧美日韩综合一区在线观看| 香蕉av福利精品导航| 亚洲性图久久| 欧美亚洲视频在线观看| 宅男噜噜噜66一区二区66| 99精品国产在热久久婷婷| 亚洲人成网站影音先锋播放| 久久婷婷综合激情| 久久综合给合久久狠狠色| 久久久久成人网| 欧美成人精品一区二区三区| 猫咪成人在线观看| 国产精品毛片在线看| 亚洲午夜激情网站| 亚洲区一区二| 欧美精品在线观看91| 亚洲美女黄色| 亚洲人精品午夜| 久久婷婷亚洲| 日韩一级大片在线| 免费亚洲视频| 欧美一区二区三区在| 亚洲色诱最新| 国产精品入口麻豆原神| 日韩亚洲在线| 一道本一区二区| 国产精品视频男人的天堂| 久久―日本道色综合久久| 麻豆精品传媒视频| 亚洲日本一区二区| 亚洲女人天堂av| 欧美在线啊v一区| 欧美精品久久天天躁| 国产日韩高清一区二区三区在线| 在线成人小视频| 欧美在线日韩精品| 亚洲第一福利视频| 久久久精品日韩欧美| 国产精品乱看| 国产一区二区三区黄视频| 欧美午夜大胆人体| 99国产精品99久久久久久| 久久国产日韩| 久久精视频免费在线久久完整在线看| 欧美三级小说| 午夜伦欧美伦电影理论片| 亚洲国产一区二区三区高清| 久久阴道视频| 亚洲乱亚洲高清| 亚洲毛片在线观看.| 国产精品久久久久久久久久三级| 亚洲一区日韩在线| 性xx色xx综合久久久xx| 黄色成人av在线| 日韩一级精品| 黄色另类av| 一片黄亚洲嫩模| 亚洲国产精品传媒在线观看| 99亚洲伊人久久精品影院红桃| 欧美日韩成人综合| 久久全国免费视频| 欧美国产三区| 午夜久久福利| 久久久久久伊人| 日韩视频永久免费| 亚洲精品三级| 国产日韩高清一区二区三区在线| 欧美中文在线观看国产| 欧美一二三区在线观看| 黄色在线一区| 亚洲毛片在线| 伊人久久大香线蕉综合热线| 欧美成人性网| 国产精品久久久久久久第一福利| 欧美日韩美女| 午夜精品久久久99热福利| 久久久7777| 激情久久五月天| 亚洲精美视频| 欧美一区二区三区在| 在线视频你懂得一区二区三区| 欧美一区二区三区精品电影| 亚洲高清在线视频| 国产精品久久久久久久第一福利| 久久久国产午夜精品| 国产精品丝袜91| 亚洲电影在线播放| 国产日韩欧美一区在线| 国产精品老女人精品视频| 久久影音先锋| 亚洲国产mv| 蜜臀av在线播放一区二区三区| 久久精品国产999大香线蕉| 欧美高清在线一区| 欧美jizz19性欧美| 尤物99国产成人精品视频| 99热精品在线观看| 国产午夜精品理论片a级大结局| aa级大片欧美三级| 欧美综合二区| 伊人久久av导航| 久久性天堂网| 久热精品视频在线免费观看| 韩国av一区二区三区在线观看| 亚洲一区在线观看视频| 久久久爽爽爽美女图片| 国产日韩欧美黄色| 午夜精品一区二区三区四区| 激情综合色综合久久| 91久久久在线| 久久资源av| 国产亚洲福利一区| 一区二区不卡在线视频 午夜欧美不卡在| 欧美一级片一区| 欧美承认网站| 国产一区亚洲| 欧美激情中文字幕一区二区| 99在线|亚洲一区二区| 午夜欧美大片免费观看| 国产丝袜美腿一区二区三区| 欧美一区亚洲| 亚洲综合色在线| 久久国产综合精品| 亚洲永久精品国产| 小黄鸭精品密入口导航| 国内精品美女av在线播放| 国产精品国产自产拍高清av| 久久精品国产欧美亚洲人人爽| 亚洲美女视频在线观看| 久久久久久穴| 亚洲欧美精品在线观看| 亚洲欧美欧美一区二区三区| 亚洲看片网站| 亚洲国产黄色片| 亚洲精品乱码久久久久久黑人 | 久久国产手机看片| 久久国产一二区| 久久激情五月激情| 欧美一区二区免费观在线| 亚洲精品视频免费| 亚洲——在线| 久久亚洲综合网| 亚洲欧美国产另类| 亚洲精品影视在线观看| 伊人久久大香线蕉av超碰演员| 国产精品视频专区| 国产一区白浆| 亚洲欧美日韩国产一区二区三区 | 欧美激情无毛| 在线一区视频| 六月丁香综合| 国产精品女同互慰在线看| 国产欧美成人| 午夜精彩国产免费不卡不顿大片| 亚洲午夜精品17c| 日韩系列在线| 久久色中文字幕| 一区视频在线播放| 久久偷看各类wc女厕嘘嘘偷窃| 亚洲综合日韩在线| 国语自产精品视频在线看抢先版结局 | 欧美日韩免费高清一区色橹橹| 欧美性一区二区| 一区二区久久久久久| 开心色5月久久精品| 久久精品夜夜夜夜久久| 狠狠色综合网站久久久久久久| 亚洲黄色免费电影| 激情六月综合| 欧美一级在线亚洲天堂| 亚洲激情图片小说视频| 日韩午夜视频在线观看| 国产一区二区欧美日韩| 亚洲国产欧美久久| 国产精品一区二区在线观看不卡| 欧美不卡一卡二卡免费版| 欧美日韩精品国产| 美女精品在线| 国产精品久久久一区二区| 91久久午夜| 亚洲人体一区| 久久亚洲国产精品日日av夜夜| 亚洲一区国产视频| 欧美电影免费观看大全| 性欧美超级视频| 久久久999精品| 亚洲欧美bt| 中文一区二区| 欧美精品一区在线发布| 最新成人在线| 国产欧美欧美| 午夜视频一区二区| 老司机午夜精品视频| 国产日韩欧美在线| 亚洲欧美不卡| 亚洲欧美卡通另类91av| 国产精品99一区二区|