亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? md5c.c

?? 這個是MD5算法C的源代碼
?? C
字號:
/* MD5C.C - RSA Data Security, Inc., MD5 message-digest algorithm *//* Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. Allrights reserved.License to copy and use this software is granted provided that itis identified as the "RSA Data Security, Inc. MD5 Message-DigestAlgorithm" in all material mentioning or referencing this softwareor this function.License is also granted to make and use derivative works providedthat such works are identified as "derived from the RSA DataSecurity, Inc. MD5 Message-Digest Algorithm" in all materialmentioning or referencing the derived work.RSA Data Security, Inc. makes no representations concerning eitherthe merchantability of this software or the suitability of thissoftware for any particular purpose. It is provided "as is"without express or implied warranty of any kind.These notices must be retained in any copies of any part of thisdocumentation and/or software. */#include "global.h"#include "md5.h"/* Constants for MD5Transform routine. */#define S11 7#define S12 12#define S13 17#define S14 22#define S21 5#define S22 9#define S23 14#define S24 20#define S31 4#define S32 11#define S33 16#define S34 23#define S41 6#define S42 10#define S43 15#define S44 21static void MD5Transform PROTO_LIST ((UINT4 [4], unsigned char [64]));static void Encode PROTO_LIST  ((unsigned char *, UINT4 *, unsigned int));static void Decode PROTO_LIST  ((UINT4 *, unsigned char *, unsigned int));static void MD5_memcpy PROTO_LIST ((POINTER, POINTER, unsigned int));static void MD5_memset PROTO_LIST ((POINTER, int, unsigned int));static unsigned char PADDING[64] = {  0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};/* F, G, H and I are basic MD5 functions. */#define F(x, y, z) (((x) & (y)) | ((~x) & (z)))#define G(x, y, z) (((x) & (z)) | ((y) & (~z)))#define H(x, y, z) ((x) ^ (y) ^ (z))#define I(x, y, z) ((y) ^ ((x) | (~z)))/* ROTATE_LEFT rotates x left n bits. */#define ROTATE_LEFT(x, n) (((x) << (n)) | ((x) >> (32-(n))))/* FF, GG, HH, and II transformations for rounds 1, 2, 3, and 4.Rotation is separate from addition to prevent recomputation. */#define FF(a, b, c, d, x, s, ac) { \ (a) += F ((b), (c), (d)) + (x) + (UINT4)(ac); \ (a) = ROTATE_LEFT ((a), (s)); \ (a) += (b); \  }#define GG(a, b, c, d, x, s, ac) { \ (a) += G ((b), (c), (d)) + (x) + (UINT4)(ac); \ (a) = ROTATE_LEFT ((a), (s)); \ (a) += (b); \  }#define HH(a, b, c, d, x, s, ac) { \ (a) += H ((b), (c), (d)) + (x) + (UINT4)(ac); \ (a) = ROTATE_LEFT ((a), (s)); \ (a) += (b); \  }#define II(a, b, c, d, x, s, ac) { \ (a) += I ((b), (c), (d)) + (x) + (UINT4)(ac); \ (a) = ROTATE_LEFT ((a), (s)); \ (a) += (b); \  }/* MD5 initialization. Begins an MD5 operation, writing a new context. */void MD5Init (context)MD5_CTX *context;                                        /* context */{  context->count[0] = context->count[1] = 0;  /* Load magic initialization constants.*/  context->state[0] = 0x67452301;  context->state[1] = 0xefcdab89;  context->state[2] = 0x98badcfe;  context->state[3] = 0x10325476;}/* MD5 block update operation. Continues an MD5 message-digest  operation, processing another message block, and updating the  context. */void MD5Update (context, input, inputLen)MD5_CTX *context;                                        /* context */unsigned char *input;                                /* input block */unsigned int inputLen;                     /* length of input block */{  unsigned int i, index, partLen;  /* Compute number of bytes mod 64 */  index = (unsigned int)((context->count[0] >> 3) & 0x3F);  /* Update number of bits */  if ((context->count[0] += ((UINT4)inputLen << 3))   < ((UINT4)inputLen << 3)) context->count[1]++;  context->count[1] += ((UINT4)inputLen >> 29);  partLen = 64 - index;  /* Transform as many times as possible.*/  if (inputLen >= partLen) { MD5_memcpy   ((POINTER)&context->buffer[index], (POINTER)input, partLen); MD5Transform (context->state, context->buffer); for (i = partLen; i + 63 < inputLen; i += 64)   MD5Transform (context->state, &input[i]); index = 0;  }  else i = 0;  /* Buffer remaining input */  MD5_memcpy ((POINTER)&context->buffer[index], (POINTER)&input[i],  inputLen-i);}/* MD5 finalization. Ends an MD5 message-digest operation, writing the  the message digest and zeroizing the context. */void MD5Final (digest, context)unsigned char digest[16];                         /* message digest */MD5_CTX *context;                                       /* context */{  unsigned char bits[8];  unsigned int index, padLen;  /* Save number of bits */  Encode (bits, context->count, 8);  /* Pad out to 56 mod 64.*/  index = (unsigned int)((context->count[0] >> 3) & 0x3f);  padLen = (index < 56) ? (56 - index) : (120 - index);  MD5Update (context, PADDING, padLen);  /* Append length (before padding) */  MD5Update (context, bits, 8);  /* Store state in digest */  Encode (digest, context->state, 16);  /* Zeroize sensitive information.*/  MD5_memset ((POINTER)context, 0, sizeof (*context));}/* MD5 basic transformation. Transforms state based on block. */static void MD5Transform (state, block)UINT4 state[4];unsigned char block[64];{  UINT4 a = state[0], b = state[1], c = state[2], d = state[3], x[16];  Decode (x, block, 64);  /* Round 1 */  FF (a, b, c, d, x[ 0], S11, 0xd76aa478); /* 1 */  FF (d, a, b, c, x[ 1], S12, 0xe8c7b756); /* 2 */  FF (c, d, a, b, x[ 2], S13, 0x242070db); /* 3 */  FF (b, c, d, a, x[ 3], S14, 0xc1bdceee); /* 4 */  FF (a, b, c, d, x[ 4], S11, 0xf57c0faf); /* 5 */  FF (d, a, b, c, x[ 5], S12, 0x4787c62a); /* 6 */  FF (c, d, a, b, x[ 6], S13, 0xa8304613); /* 7 */  FF (b, c, d, a, x[ 7], S14, 0xfd469501); /* 8 */  FF (a, b, c, d, x[ 8], S11, 0x698098d8); /* 9 */  FF (d, a, b, c, x[ 9], S12, 0x8b44f7af); /* 10 */  FF (c, d, a, b, x[10], S13, 0xffff5bb1); /* 11 */  FF (b, c, d, a, x[11], S14, 0x895cd7be); /* 12 */  FF (a, b, c, d, x[12], S11, 0x6b901122); /* 13 */  FF (d, a, b, c, x[13], S12, 0xfd987193); /* 14 */  FF (c, d, a, b, x[14], S13, 0xa679438e); /* 15 */  FF (b, c, d, a, x[15], S14, 0x49b40821); /* 16 */ /* Round 2 */  GG (a, b, c, d, x[ 1], S21, 0xf61e2562); /* 17 */  GG (d, a, b, c, x[ 6], S22, 0xc040b340); /* 18 */  GG (c, d, a, b, x[11], S23, 0x265e5a51); /* 19 */  GG (b, c, d, a, x[ 0], S24, 0xe9b6c7aa); /* 20 */  GG (a, b, c, d, x[ 5], S21, 0xd62f105d); /* 21 */  GG (d, a, b, c, x[10], S22,  0x2441453); /* 22 */  GG (c, d, a, b, x[15], S23, 0xd8a1e681); /* 23 */  GG (b, c, d, a, x[ 4], S24, 0xe7d3fbc8); /* 24 */  GG (a, b, c, d, x[ 9], S21, 0x21e1cde6); /* 25 */  GG (d, a, b, c, x[14], S22, 0xc33707d6); /* 26 */  GG (c, d, a, b, x[ 3], S23, 0xf4d50d87); /* 27 */  GG (b, c, d, a, x[ 8], S24, 0x455a14ed); /* 28 */  GG (a, b, c, d, x[13], S21, 0xa9e3e905); /* 29 */  GG (d, a, b, c, x[ 2], S22, 0xfcefa3f8); /* 30 */  GG (c, d, a, b, x[ 7], S23, 0x676f02d9); /* 31 */  GG (b, c, d, a, x[12], S24, 0x8d2a4c8a); /* 32 */  /* Round 3 */  HH (a, b, c, d, x[ 5], S31, 0xfffa3942); /* 33 */  HH (d, a, b, c, x[ 8], S32, 0x8771f681); /* 34 */  HH (c, d, a, b, x[11], S33, 0x6d9d6122); /* 35 */  HH (b, c, d, a, x[14], S34, 0xfde5380c); /* 36 */  HH (a, b, c, d, x[ 1], S31, 0xa4beea44); /* 37 */  HH (d, a, b, c, x[ 4], S32, 0x4bdecfa9); /* 38 */  HH (c, d, a, b, x[ 7], S33, 0xf6bb4b60); /* 39 */  HH (b, c, d, a, x[10], S34, 0xbebfbc70); /* 40 */  HH (a, b, c, d, x[13], S31, 0x289b7ec6); /* 41 */  HH (d, a, b, c, x[ 0], S32, 0xeaa127fa); /* 42 */  HH (c, d, a, b, x[ 3], S33, 0xd4ef3085); /* 43 */  HH (b, c, d, a, x[ 6], S34,  0x4881d05); /* 44 */  HH (a, b, c, d, x[ 9], S31, 0xd9d4d039); /* 45 */  HH (d, a, b, c, x[12], S32, 0xe6db99e5); /* 46 */  HH (c, d, a, b, x[15], S33, 0x1fa27cf8); /* 47 */  HH (b, c, d, a, x[ 2], S34, 0xc4ac5665); /* 48 */  /* Round 4 */  II (a, b, c, d, x[ 0], S41, 0xf4292244); /* 49 */  II (d, a, b, c, x[ 7], S42, 0x432aff97); /* 50 */  II (c, d, a, b, x[14], S43, 0xab9423a7); /* 51 */  II (b, c, d, a, x[ 5], S44, 0xfc93a039); /* 52 */  II (a, b, c, d, x[12], S41, 0x655b59c3); /* 53 */  II (d, a, b, c, x[ 3], S42, 0x8f0ccc92); /* 54 */  II (c, d, a, b, x[10], S43, 0xffeff47d); /* 55 */  II (b, c, d, a, x[ 1], S44, 0x85845dd1); /* 56 */  II (a, b, c, d, x[ 8], S41, 0x6fa87e4f); /* 57 */  II (d, a, b, c, x[15], S42, 0xfe2ce6e0); /* 58 */  II (c, d, a, b, x[ 6], S43, 0xa3014314); /* 59 */  II (b, c, d, a, x[13], S44, 0x4e0811a1); /* 60 */  II (a, b, c, d, x[ 4], S41, 0xf7537e82); /* 61 */  II (d, a, b, c, x[11], S42, 0xbd3af235); /* 62 */  II (c, d, a, b, x[ 2], S43, 0x2ad7d2bb); /* 63 */  II (b, c, d, a, x[ 9], S44, 0xeb86d391); /* 64 */  state[0] += a;  state[1] += b;  state[2] += c;  state[3] += d;  /* Zeroize sensitive information.   */  MD5_memset ((POINTER)x, 0, sizeof (x));}/* Encodes input (UINT4) into output (unsigned char). Assumes len is  a multiple of 4. */static void Encode (output, input, len)unsigned char *output;UINT4 *input;unsigned int len;{  unsigned int i, j;  for (i = 0, j = 0; j < len; i++, j += 4) { output[j] = (unsigned char)(input[i] & 0xff); output[j+1] = (unsigned char)((input[i] >> 8) & 0xff); output[j+2] = (unsigned char)((input[i] >> 16) & 0xff); output[j+3] = (unsigned char)((input[i] >> 24) & 0xff);  }}/* Decodes input (unsigned char) into output (UINT4). Assumes len is  a multiple of 4. */static void Decode (output, input, len)UINT4 *output;unsigned char *input;unsigned int len;{  unsigned int i, j;  for (i = 0, j = 0; j < len; i++, j += 4) output[i] = ((UINT4)input[j]) | (((UINT4)input[j+1]) << 8) |   (((UINT4)input[j+2]) << 16) | (((UINT4)input[j+3]) << 24);}/* Note: Replace "for loop" with standard memcpy if possible. */static void MD5_memcpy (output, input, len)POINTER output;POINTER input;unsigned int len;{  unsigned int i;  for (i = 0; i < len; i++)    output[i] = input[i];}/* Note: Replace "for loop" with standard memset if possible. */static void MD5_memset (output, value, len)POINTER output;int value;unsigned int len;{  unsigned int i;  for (i = 0; i < len; i++) ((char *)output)[i] = (char)value;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩精品一区二区在线播放| 911精品产国品一二三产区| 免费xxxx性欧美18vr| 日韩国产高清影视| 国产精品亚洲一区二区三区在线| 欧美色图在线观看| 国产亚洲一区字幕| 久久精品国产999大香线蕉| 91丨porny丨中文| 中文字幕av一区二区三区免费看| 极品少妇xxxx偷拍精品少妇| 欧美日韩免费视频| 亚洲成av人影院| 欧美成人video| 国产精品自产自拍| 国产亚洲污的网站| 国产成人免费视频一区| 国产午夜精品久久久久久久| 成人综合婷婷国产精品久久蜜臀 | 这里只有精品99re| 免费看欧美美女黄的网站| 色屁屁一区二区| 亚洲精品免费电影| 欧美精品成人一区二区三区四区| 免费成人美女在线观看| 国产日韩精品一区二区浪潮av| 国产福利一区在线| 亚洲欧美成人一区二区三区| 欧美一级欧美一级在线播放| 成人视屏免费看| 亚洲国产另类av| 久久久久久久久岛国免费| 91网站黄www| 九一久久久久久| 一区二区三区在线视频免费| 在线电影国产精品| 99精品桃花视频在线观看| 午夜久久福利影院| 中文字幕亚洲不卡| 欧美日韩精品免费观看视频| 国产另类ts人妖一区二区| 91福利国产成人精品照片| 精品国产伦理网| 欧美羞羞免费网站| 成人av在线电影| 精品一区二区三区的国产在线播放| 成人免费在线视频| 中文子幕无线码一区tr| 日韩一级片在线观看| 欧美三级三级三级爽爽爽| 欧美综合一区二区| 国产老肥熟一区二区三区| 亚洲国产精品久久不卡毛片| 亚洲欧美日韩系列| 亚洲欧美色一区| 亚洲午夜精品一区二区三区他趣| 亚洲天堂成人网| 国产精品国产三级国产aⅴ入口 | 国产女人aaa级久久久级| 国产日产欧产精品推荐色| 久久久久久**毛片大全| 久久久精品蜜桃| 日本一区二区成人| 中文字幕巨乱亚洲| 亚洲人xxxx| 综合精品久久久| 中文字幕在线一区二区三区| 国产亚洲欧美一区在线观看| 久久久久久久综合日本| 国产亚洲综合色| 一区二区免费在线| 亚洲123区在线观看| 国产中文一区二区三区| av在线综合网| 欧美一级xxx| 中文字幕中文字幕一区二区 | 精品国产免费一区二区三区四区 | 欧美老女人在线| 久久美女艺术照精彩视频福利播放 | 99在线热播精品免费| 色哟哟日韩精品| 精品久久99ma| 一区二区三区在线观看视频| 国产乱码精品一区二区三区忘忧草| 成人动漫视频在线| 日韩欧美国产一区二区在线播放| 亚洲永久精品国产| 国产成人av一区二区| 在线免费观看日本欧美| 久久综合九色综合97_久久久| 亚洲一区二区综合| 99视频有精品| 欧美激情综合在线| 久久国产福利国产秒拍| 欧美视频一区在线| 久久久国产精品麻豆| 蜜桃一区二区三区在线观看| 91视频在线观看免费| 亚洲综合一区在线| 97久久精品人人做人人爽50路| 国产亚洲精品超碰| 日韩国产欧美一区二区三区| 日本韩国一区二区| 日韩一区在线看| 99re视频精品| 亚洲精品国产精华液| 91久久精品日日躁夜夜躁欧美| 国产精品美女视频| 成+人+亚洲+综合天堂| 国产精品免费免费| 欧美在线|欧美| 日韩电影网1区2区| 精品日本一线二线三线不卡| 久久精品国产色蜜蜜麻豆| 亚洲精品在线免费观看视频| 国产盗摄女厕一区二区三区| 亚洲欧洲日韩在线| 欧美日韩精品一区二区| 另类综合日韩欧美亚洲| 精品国产精品网麻豆系列| 国产一区二区三区电影在线观看| 中文字幕精品一区二区精品绿巨人| 91久久香蕉国产日韩欧美9色| 国产91精品欧美| 亚洲尤物在线视频观看| 欧美一区二区在线不卡| 国产九色sp调教91| 一区二区三区精密机械公司| 久久久久久免费网| 欧美性一二三区| 国产成人亚洲综合a∨婷婷| 亚洲欧美日韩一区二区三区在线观看| 欧美日韩一区在线观看| 成人免费观看男女羞羞视频| 免费观看30秒视频久久| 亚洲婷婷在线视频| 精品精品欲导航| 欧洲一区二区三区在线| 国产精品12区| 美女国产一区二区三区| 亚洲男人的天堂av| 国产精品久久久久久久久动漫 | www.色综合.com| 国产在线精品国自产拍免费| 一区二区三区美女| 国产免费成人在线视频| 久久免费的精品国产v∧| 欧美人与性动xxxx| 色天使久久综合网天天| 欧美天堂一区二区三区| 不卡av在线免费观看| 国内一区二区视频| 美女国产一区二区| 精品午夜久久福利影院| 九色综合狠狠综合久久| 蜜桃视频免费观看一区| 性做久久久久久免费观看| 天堂蜜桃一区二区三区 | 欧美zozozo| 日韩精品一区二区三区swag | 99久久精品情趣| 在线中文字幕不卡| 欧洲精品一区二区| 在线一区二区视频| 69堂精品视频| 久久综合久久99| 国产日韩欧美电影| 中文字幕国产一区二区| 视频一区视频二区中文字幕| 国内不卡的二区三区中文字幕| 国产成人免费视频一区| 欧美做爰猛烈大尺度电影无法无天| 欧美日韩1区2区| 日韩精品一区二区在线| 中文字幕一区二区三区蜜月| 亚洲丝袜制服诱惑| 中文字幕亚洲综合久久菠萝蜜| 亚洲天堂成人在线观看| 久草热8精品视频在线观看| caoporen国产精品视频| 欧美一区二区美女| 国产精品传媒在线| 精品一区二区三区免费播放| 97久久人人超碰| 精品久久人人做人人爰| 亚洲成人你懂的| av资源站一区| 久久精品夜夜夜夜久久| 丝袜脚交一区二区| 91高清视频在线| 亚洲欧洲国产日韩| 成人18精品视频| 国产日产欧美一区| 国产自产v一区二区三区c| 日韩一区二区三区三四区视频在线观看| 中文字幕精品三区| 成人小视频免费在线观看| 国产午夜精品久久久久久免费视 | 日本道色综合久久| 国产三级精品在线|