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

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

如有恒,何須三更起,半夜眠;最怕莫,三天打魚兩天曬網,竹籃打水一場空!
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>
            国产精品尤物福利片在线观看| 鲁鲁狠狠狠7777一区二区| 欧美日韩久久不卡| 亚洲女同同性videoxma| 国产精品美女久久久久久免费| 欧美成人在线免费视频| 亚洲一区视频在线| 午夜国产不卡在线观看视频| 欧美韩日一区二区| 亚洲女女做受ⅹxx高潮| 中文欧美在线视频| 亚洲国产另类精品专区| 日韩视频亚洲视频| 麻豆91精品91久久久的内涵| 欧美在线影院在线视频| 最新成人在线| 欧美精品二区| 久久久久国产精品人| 一区二区欧美在线| 国产精品地址| 欧美一级片在线播放| 老司机67194精品线观看| 亚洲女性喷水在线观看一区| 葵司免费一区二区三区四区五区| 激情久久久久久久| 亚洲欧美成人综合| 亚洲精品欧美日韩| 中国成人黄色视屏| 另类av一区二区| 亚洲一区综合| 亚洲精品一二三区| 欧美激情一区二区三区在线| 欧美日韩另类在线| 99综合精品| 亚洲无线视频| 国产麻豆精品久久一二三| 亚洲男同1069视频| 在线视频精品一| 欧美激情一区二区| 国产日本欧美在线观看| 欧美一区二区三区精品| 久久精品国产亚洲高清剧情介绍 | 久久电影一区| 国产精品久久久久一区二区三区共| 欧美一区二区福利在线| 亚洲激情偷拍| 国产区在线观看成人精品| 亚洲一区二区三区四区五区午夜 | 国产欧美日韩在线观看| 欧美色视频日本高清在线观看| 亚洲高清毛片| 久久久久久亚洲精品杨幂换脸| 国产精品久久久久毛片软件| 亚洲精品国产精品国产自| 国产精品久久毛片a| 美女诱惑黄网站一区| 国产一区二区高清视频| 亚洲午夜精品| 美玉足脚交一区二区三区图片| 欧美精品导航| 欧美国产综合| 国产视频在线观看一区二区| 夜色激情一区二区| 99视频精品免费观看| 欧美高清在线一区二区| 激情欧美亚洲| 欧美综合二区| 久久久噜噜噜久久久| 欧美与黑人午夜性猛交久久久| 欧美与黑人午夜性猛交久久久| 欧美超级免费视 在线| 久久人人看视频| 亚洲日本成人在线观看| 欧美激情欧美狂野欧美精品| 久久久久国产一区二区三区| 国产欧美丝祙| 欧美一区视频| 午夜综合激情| 精品成人在线视频| 欧美小视频在线| 久久亚洲私人国产精品va| 国产精品美女www爽爽爽视频 | 欧美一区二区三区免费视| 影音先锋亚洲精品| 欧美精品一区二区视频| 国产视频一区在线观看| 欧美精品一区三区在线观看| 久久精品动漫| 久久久999成人| 亚洲欧美日韩综合国产aⅴ| 99re6这里只有精品| 亚洲成人资源| 国产一级一区二区| 女人天堂亚洲aⅴ在线观看| 午夜精品久久久久久99热| 亚洲欧美日韩精品综合在线观看| 亚洲韩日在线| 激情综合视频| 国产精品色网| 亚洲激情欧美| 亚洲成色精品| 久久国产福利国产秒拍| 亚洲精品久久久久中文字幕欢迎你| 国产精品国色综合久久| 午夜精品视频网站| 欧美freesex8一10精品| 欧美一区2区视频在线观看| 亚洲美女在线国产| 激情六月综合| 欧美精品亚洲一区二区在线播放| 乱人伦精品视频在线观看| 亚洲伊人伊色伊影伊综合网| 亚洲午夜精品久久久久久浪潮| 久久蜜桃资源一区二区老牛| 中文日韩在线| 亚洲影院在线| 亚洲深夜激情| 久久久久久国产精品一区| 国产欧美一区二区精品忘忧草| 欧美精品国产一区| 欧美久久久久免费| 久色婷婷小香蕉久久| 免费短视频成人日韩| 欧美视频国产精品| 国产精品视频一区二区高潮| 欧美一区二区三区在线免费观看| 亚洲久久视频| 麻豆精品在线观看| 国产精品视频xxxx| 99精品免费网| 性欧美大战久久久久久久免费观看 | 狠狠色综合播放一区二区| 怡红院精品视频在线观看极品| 99re6热只有精品免费观看 | 欧美性猛交xxxx乱大交退制版| 国产精品久久久久久久久| 狠狠色狠狠色综合系列| 亚洲精品一区在线观看香蕉| 国产一区二区三区视频在线观看| 亚洲欧洲三级| 久久在线播放| 99re6热只有精品免费观看| 校园春色国产精品| 久久精品国产一区二区三区免费看| 久久婷婷国产麻豆91天堂| 国产精品久久一级| 亚洲毛片av在线| 亚洲欧美日韩国产综合| 亚洲一区亚洲二区| 欧美高清在线视频| 久久精品水蜜桃av综合天堂| 狠狠久久五月精品中文字幕| 亚洲欧洲99久久| 久久综合色8888| 久久精品亚洲乱码伦伦中文| 好看的日韩av电影| 麻豆av一区二区三区| 免费看的黄色欧美网站| 亚洲国产婷婷| 亚洲欧美日韩天堂| 国产一区二区三区久久久久久久久| 久久久久网址| 亚洲天堂黄色| 亚洲激情偷拍| 国产精品草莓在线免费观看| 亚洲激情在线视频| 欧美.www| 国产精品久久精品日日| 亚洲影院色无极综合| a91a精品视频在线观看| 国产精品女人网站| 亚洲午夜在线观看视频在线| 亚洲国产日韩欧美在线动漫| 夜夜爽www精品| 久久成人这里只有精品| 国产精品亚洲综合天堂夜夜| 99热在这里有精品免费| 尤物精品在线| 久久成人在线| 麻豆freexxxx性91精品| 国产精品亚洲成人| 99综合视频| aa日韩免费精品视频一| 欧美精品色一区二区三区| 日韩亚洲国产精品| 亚洲国产精品999| 蜜臀av性久久久久蜜臀aⅴ| 欧美激情欧美激情在线五月| 中文在线一区| 国产视频欧美视频| 欧美一区午夜精品| 亚洲福利专区| 一区二区三区波多野结衣在线观看| 欧美α欧美αv大片| 久久久精彩视频| 亚洲黄色成人久久久| 国产伦精品一区二区| 久久免费精品视频| 中文国产成人精品| 欧美高清视频一二三区|