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

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

?? md5c.c

?? MD5算法的例子
?? 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一区二区三区免费野_久草精品视频
蜜桃av一区二区在线观看| 国产精品第13页| 欧美日韩免费高清一区色橹橹 | 26uuu色噜噜精品一区| 欧美老年两性高潮| 欧美日韩中文另类| 欧美肥妇毛茸茸| 欧美精品 国产精品| 欧美精品欧美精品系列| 欧美一区二区福利在线| 日韩欧美一卡二卡| 久久久久久久久久美女| 国产人妖乱国产精品人妖| 欧美激情一区二区三区不卡| 综合亚洲深深色噜噜狠狠网站| 国产精品久久久久久久午夜片| 综合av第一页| 亚洲成人激情综合网| 免费视频最近日韩| 国产麻豆精品在线观看| jvid福利写真一区二区三区| 欧洲精品视频在线观看| 久久综合五月天婷婷伊人| 日韩午夜小视频| 国产区在线观看成人精品| 亚洲欧美在线另类| 亚洲成人免费av| 国产自产v一区二区三区c| 波多野结衣视频一区| 欧美色老头old∨ideo| 日韩女优制服丝袜电影| 国产精品久久精品日日| 亚洲成人动漫在线免费观看| 国产一区二区久久| 色综合天天综合狠狠| 欧美一级二级三级乱码| 中文字幕一区二区不卡| 三级欧美韩日大片在线看| 国产精品一卡二卡在线观看| 日本道色综合久久| 久久色在线观看| 五月天欧美精品| 99视频一区二区| 精品精品欲导航| 亚洲一区二区三区自拍| 国产成人亚洲综合a∨婷婷| 欧美视频你懂的| 国产亚洲制服色| 日韩成人伦理电影在线观看| 色综合中文字幕| 久久久高清一区二区三区| 亚洲mv在线观看| 91丝袜美女网| 久久精子c满五个校花| 日韩精品三区四区| 91免费版在线| 亚洲国产经典视频| 日本一不卡视频| 欧美最猛黑人xxxxx猛交| 国产欧美日韩三级| 99精品欧美一区| 日韩女同互慰一区二区| 亚洲www啪成人一区二区麻豆| 97久久超碰精品国产| 久久久蜜桃精品| 精品无码三级在线观看视频| 欧美顶级少妇做爰| 五月天亚洲婷婷| 欧美精品久久一区二区三区 | 91片在线免费观看| 久久久久久久久久美女| 极品尤物av久久免费看| 日韩欧美亚洲国产精品字幕久久久| 亚洲第一福利一区| 欧美日韩亚洲国产综合| 亚洲图片欧美视频| 欧美日韩在线播放一区| 亚洲大片精品永久免费| 欧美日韩精品一区二区在线播放| 亚洲午夜久久久久久久久电影院| 日本韩国一区二区三区视频| 亚洲综合男人的天堂| 91黄视频在线观看| 亚洲午夜精品在线| 欧美久久久久久久久| 日本人妖一区二区| 精品少妇一区二区三区| 国产精品亚洲视频| 国产精品区一区二区三| 99re成人精品视频| 亚洲国产裸拍裸体视频在线观看乱了 | 精品久久久久久亚洲综合网| 激情综合网激情| 亚洲日本在线a| 欧美亚州韩日在线看免费版国语版| 亚洲精品日韩一| 91.com在线观看| 国产在线精品一区二区不卡了 | 香蕉成人伊视频在线观看| 欧美一区永久视频免费观看| 国内精品久久久久影院薰衣草| 久久精品综合网| 欧美色综合久久| 国产精品1区2区3区| 亚洲日本免费电影| 制服视频三区第一页精品| 国产一区二区三区香蕉| 亚洲免费电影在线| 日韩欧美色综合网站| av在线播放成人| 肉色丝袜一区二区| 国产精品美女久久福利网站| 欧美三级乱人伦电影| 精品一区二区三区久久久| 成人欧美一区二区三区| 欧美一级视频精品观看| eeuss鲁片一区二区三区在线看| 午夜精品在线视频一区| 欧美激情一区二区三区在线| 欧美嫩在线观看| 99精品热视频| 国产精品一二三四五| 午夜影院在线观看欧美| 国产女同性恋一区二区| 欧美肥胖老妇做爰| 色综合一个色综合亚洲| 国产成人亚洲综合色影视| 日韩在线a电影| 亚洲免费观看高清完整版在线| 久久久蜜桃精品| 日韩女优制服丝袜电影| 欧美在线制服丝袜| 99国产精品视频免费观看| 国产在线观看免费一区| 日韩av二区在线播放| 亚洲精品你懂的| 国产精品国产三级国产| 精品久久人人做人人爽| 7777精品伊人久久久大香线蕉的 | 亚洲女与黑人做爰| 国产午夜亚洲精品羞羞网站| 日韩视频一区二区三区在线播放| 在线免费不卡视频| 成人av综合在线| 国产成人av福利| 国产中文一区二区三区| 蜜桃在线一区二区三区| 日韩va亚洲va欧美va久久| 亚洲成a天堂v人片| 亚洲女厕所小便bbb| 国产精品久久久久婷婷| 国产欧美精品一区二区色综合 | 国产白丝网站精品污在线入口| 精彩视频一区二区三区| 麻豆精品在线看| 久久电影网站中文字幕| 免费精品视频在线| 久久精品国产亚洲高清剧情介绍 | 国产精品入口麻豆九色| 国产精品欧美一级免费| 国产精品无圣光一区二区| 国产清纯白嫩初高生在线观看91| 久久久激情视频| 国产精品美女久久久久久2018| 亚洲欧洲成人av每日更新| 亚洲日本乱码在线观看| 亚洲国产综合在线| 日本少妇一区二区| 国产原创一区二区三区| 高清不卡一二三区| 92精品国产成人观看免费| 色狠狠桃花综合| 欧美一区二区三区四区高清| 精品国产乱码久久久久久久久| 国产三级三级三级精品8ⅰ区| 中文字幕在线视频一区| 亚洲二区在线观看| 久久精品国内一区二区三区| 成人午夜视频在线| 91美女片黄在线观看91美女| 欧美高清精品3d| 国产欧美日韩麻豆91| 亚洲一区二区在线视频| 久久超碰97中文字幕| 成人性色生活片| 欧美一区二区三区男人的天堂| 国产调教视频一区| 亚洲va欧美va人人爽| 国产精品亚洲专一区二区三区| 97国产一区二区| 精品免费视频一区二区| 综合色中文字幕| 美女任你摸久久| 在线精品视频小说1| 久久青草国产手机看片福利盒子| 亚洲免费观看视频| 国产乱国产乱300精品| 欧美日韩国产大片| 成人欧美一区二区三区小说| 国产在线不卡一卡二卡三卡四卡|