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

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

如有恒,何須三更起,半夜眠;最怕莫,三天打魚兩天曬網(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>
            欧美激情aaaa| 欧美一区二区三区四区视频| 亚洲国产精品成人一区二区| 久久av最新网址| 亚洲精选一区| 国产精品99久久久久久有的能看| 久久伊人精品天天| 欧美成年人在线观看| 欧美一区二区三区免费大片| 亚洲美女诱惑| 日韩午夜在线视频| 国产乱人伦精品一区二区| 久久综合九色综合久99| 亚洲欧美日韩国产中文| 亚洲高清免费| 久久久久国产精品午夜一区| 国产一区二区三区在线观看精品 | 亚洲精品国产欧美| 亚洲一区二区免费| 久久视频在线看| 日韩一区二区精品| 亚洲一级免费视频| 美女视频黄免费的久久| 欧美日韩国产免费| 国产精品一区二区三区观看| 国产精品一区久久| 国产精品一卡二卡| 欧美日韩在线不卡| 久久久久久9999| 国产精品国产福利国产秒拍| 亚洲精品一区二区三区蜜桃久| 久久精品系列| 一区二区三区视频在线观看| 午夜在线精品| 欧美激情中文字幕一区二区| 国模套图日韩精品一区二区| **欧美日韩vr在线| 在线观看欧美成人| 久热精品在线视频| 欧美大片一区二区三区| 国产精品乱码妇女bbbb| 中文精品视频一区二区在线观看| 久久都是精品| 亚洲国产精品久久91精品| 亚洲网站在线看| 欧美激情国产高清| 国产精品激情电影| 国产精品青草久久久久福利99| 亚洲欧美日韩在线| 欧美在线视频不卡| 国产伦精品一区二区三区照片91| 亚洲理论电影网| 亚洲黄色视屏| 欧美激情1区2区| 鲁大师成人一区二区三区| 亚洲精品久久久久久久久久久| 欧美一区二区三区免费观看| 最新日韩中文字幕| 久久久精品国产免大香伊| 欧美精品aa| 激情欧美日韩| 亚洲视频观看| 欧美在线在线| 亚洲高清三级视频| 欧美激情视频网站| 久久成人资源| 国产一区久久久| 亚洲一区二区三| 亚洲国产日韩一区二区| 国产日韩精品一区二区| 亚洲图片欧美午夜| 日韩写真在线| 久久久久久久久久久一区| 蜜臀a∨国产成人精品| 久久久久久一区二区| 久久久综合香蕉尹人综合网| 国产主播喷水一区二区| 久久精品麻豆| 麻豆av福利av久久av| 欧美一区二区大片| 欧美成人精品高清在线播放| 久久成人精品视频| 在线成人h网| 麻豆精品国产91久久久久久| 午夜精品一区二区三区在线| 亚洲自拍三区| 欧美日韩国产在线播放| 午夜精品亚洲| 国产精品va在线播放| 久久偷看各类wc女厕嘘嘘偷窃| 欧美精品性视频| 亚洲欧美久久| 欧美日本簧片| aa亚洲婷婷| 欧美一级视频免费在线观看| 欧美成年人在线观看| 亚洲大胆人体视频| 亚洲精品综合在线| 久久综合网色—综合色88| 国产乱子伦一区二区三区国色天香| 亚洲人成人99网站| 亚洲国产91| 亚洲欧美在线另类| 黄网站免费久久| 欧美日韩另类视频| 在线亚洲欧美专区二区| 一本色道久久综合亚洲精品小说| 国产精品综合久久久| 欧美久久久久久| 亚洲成在线观看| 久久久综合网站| 欧美福利小视频| 国产精品都在这里| av成人免费在线| 亚洲黄色三级| 中文欧美在线视频| 亚洲伦理精品| 国产真实乱偷精品视频免| 欧美成人网在线| 欧美99久久| 日韩视频免费在线观看| 欧美精品乱码久久久久久按摩| 亚洲国产日日夜夜| 久久精品三级| 国产精品久久久久永久免费观看| 9人人澡人人爽人人精品| 久久―日本道色综合久久| 黄网动漫久久久| 欧美成人性生活| 久久九九电影| 美女爽到呻吟久久久久| 欧美一区二区黄色| 亚洲婷婷免费| 亚洲天堂av在线免费观看| 亚洲欧美韩国| 亚洲激情不卡| 欧美日韩精品在线播放| 欧美专区在线播放| 亚洲性线免费观看视频成熟| 亚洲精品免费看| 欧美国产日韩免费| 欧美777四色影视在线| 亚洲午夜精品久久久久久app| 亚洲精品视频免费在线观看| 最新亚洲激情| 夜夜嗨av色一区二区不卡| 欧美日韩中文在线观看| 麻豆freexxxx性91精品| 久久久精品五月天| 国产午夜精品理论片a级大结局 | 亚洲黑丝在线| 99视频超级精品| 先锋资源久久| 亚洲精品国产精品国产自| 久久黄色网页| 欧美一区二区免费| 欧美性一区二区| 国产精品主播| 很黄很黄激情成人| 99天天综合性| 午夜欧美精品久久久久久久| 黄色成人小视频| 最新成人av在线| 亚洲一本视频| 亚洲欧美一区二区精品久久久| 久久视频免费观看| 国产精品入口日韩视频大尺度| 亚洲人成网站色ww在线| 老司机一区二区三区| 影音先锋亚洲精品| 亚洲手机在线| 亚洲精品国偷自产在线99热| 欧美一区二区视频在线观看2020| 精品999日本| 亚洲欧洲综合另类| 欧美大片在线观看| 一区二区日韩免费看| 国产精品视频| 国产一区二区三区精品欧美日韩一区二区三区| 欧美天堂在线观看| 亚洲网站视频福利| 欧美国产成人精品| 久久婷婷丁香| 一本色道久久加勒比精品| 欧美电影免费观看网站| 亚洲人午夜精品免费| 日韩亚洲不卡在线| 国产精品一区视频网站| 在线日韩av| 久久国产高清| 亚洲午夜精品网| 亚洲欧洲偷拍精品| 久久久免费精品视频| 在线成人激情视频| 亚洲另类视频| 国模精品娜娜一二三区| 国产精品系列在线| 久久夜色精品国产欧美乱极品 | 一本色道**综合亚洲精品蜜桃冫 | 久久亚洲影院|