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

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

?? md5.cpp

?? 獲取硬盤序列號的VC++源程序 DiskInfo.zip
?? CPP
字號:
/* MD5C.C - RSA Data Security, Inc., MD5 message-digest algorithm
 */

/* Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All
rights reserved.

License to copy and use this software is granted provided that it
is identified as the "RSA Data Security, Inc. MD5 Message-Digest
Algorithm" in all material mentioning or referencing this software
or this function.

License is also granted to make and use derivative works provided
that such works are identified as "derived from the RSA Data
Security, Inc. MD5 Message-Digest Algorithm" in all material
mentioning or referencing the derived work.

RSA Data Security, Inc. makes no representations concerning either
the merchantability of this software or the suitability of this
software 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 this
documentation 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 21

static void MD5Transform (UINT4 state[4], unsigned char block[64]);
static void Encode (unsigned char *output, UINT4 *input, unsigned int len);
static void Decode (UINT4 *output, unsigned char *input, unsigned int len);
static void MD5_memcpy (POINTER output, POINTER input, unsigned int len);
static void MD5_memset (POINTER output, int value, unsigned int len);

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 (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 (MD5_CTX *context, unsigned char *input, unsigned int inputLen)
{
  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 (unsigned char digest[16], MD5_CTX *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 (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 (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 (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 (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 (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一区二区三区免费野_久草精品视频
99久久久无码国产精品| 精品在线视频一区| 亚洲欧美区自拍先锋| 国产婷婷色一区二区三区在线| 日韩久久免费av| 日韩三级中文字幕| 精品国产乱码久久久久久免费| 日韩三级视频中文字幕| 日韩欧美中文一区| 精品久久人人做人人爱| 久久人人97超碰com| 国产欧美日韩激情| 一区二区三区四区视频精品免费 | 香蕉加勒比综合久久| 婷婷六月综合亚洲| 麻豆一区二区三| 国产激情一区二区三区四区| 成人在线一区二区三区| 色婷婷久久99综合精品jk白丝| 欧美日韩在线精品一区二区三区激情 | 中文字幕中文字幕一区二区 | 亚洲综合丁香婷婷六月香| 亚洲一线二线三线久久久| 午夜精品久久久久久久99水蜜桃 | 亚洲777理论| 经典一区二区三区| 色综合天天狠狠| 91精品国产综合久久久久久久久久| 日韩视频一区二区三区| 国产精品久久久久久久久果冻传媒 | 欧美午夜不卡视频| 久久综合资源网| 一区二区三区在线观看动漫| 日韩av不卡一区二区| 国产成人无遮挡在线视频| 欧美性生活影院| 久久精品男人的天堂| 石原莉奈一区二区三区在线观看| 国产一区二区在线观看免费 | 日产精品久久久久久久性色| 国产精品18久久久久久久网站| 在线视频一区二区三| 久久午夜电影网| 五月综合激情婷婷六月色窝| 成人午夜视频福利| 337p粉嫩大胆噜噜噜噜噜91av| 一区二区三区欧美久久| 国产精品综合一区二区三区| 欧美女孩性生活视频| 国产精品三级久久久久三级| 蜜臀久久久久久久| 91极品美女在线| 亚洲国产成人私人影院tom| 美日韩一区二区| 欧美日韩大陆在线| 亚洲品质自拍视频网站| 高清国产午夜精品久久久久久| 91精品国产综合久久久久久| 亚洲欧美日韩久久| 成人av片在线观看| 久久久久久久久久久黄色| 麻豆精品一区二区三区| 在线观看91av| 爽好多水快深点欧美视频| 色婷婷综合久久久中文字幕| 国产精品天天摸av网| 国产精品77777竹菊影视小说| 日韩欧美国产高清| 麻豆精品一区二区综合av| 欧美日韩国产大片| 国产精品18久久久久久久网站| 精品少妇一区二区三区在线播放| 五月天精品一区二区三区| 欧美在线观看一区| 夜夜夜精品看看| 91极品美女在线| 午夜视频在线观看一区二区| 91精品福利视频| 午夜欧美一区二区三区在线播放| 色先锋aa成人| 亚洲h在线观看| 91精品麻豆日日躁夜夜躁| 免费看日韩精品| 精品国产一区二区亚洲人成毛片| 美女诱惑一区二区| 久久亚洲一区二区三区明星换脸| 国产一区二区在线影院| 中文字幕二三区不卡| 色域天天综合网| 天堂va蜜桃一区二区三区 | 国产精品一区二区男女羞羞无遮挡| 精品免费国产一区二区三区四区| 久久99久久久久| 中文字幕的久久| 91在线观看下载| 青草av.久久免费一区| 久久蜜桃av一区精品变态类天堂 | 有码一区二区三区| 欧美日韩色综合| 久久精品二区亚洲w码| 国产色产综合色产在线视频| 99久久久国产精品免费蜜臀| 亚洲午夜羞羞片| 精品成人一区二区| 色偷偷88欧美精品久久久| 蜜桃视频在线观看一区| 中文在线一区二区| 欧美猛男gaygay网站| 九色综合狠狠综合久久| 成人免费在线视频观看| 日韩欧美资源站| 91在线精品一区二区三区| 免费一区二区视频| 亚洲女人的天堂| 久久综合色天天久久综合图片| 成人免费毛片嘿嘿连载视频| 午夜一区二区三区视频| 国产精品网友自拍| 欧美电影免费观看高清完整版 | 国产精品资源在线看| 亚洲中国最大av网站| 久久久久久久综合日本| 欧美美女激情18p| 91视频91自| 国产成人h网站| 青青草国产成人av片免费| 亚洲视频在线一区观看| 337p日本欧洲亚洲大胆色噜噜| 欧美日韩一区二区三区在线| 99久久99久久久精品齐齐| 国模无码大尺度一区二区三区| 亚洲午夜三级在线| 综合中文字幕亚洲| 久久精品夜色噜噜亚洲aⅴ| 69堂成人精品免费视频| 欧美性猛片aaaaaaa做受| 91免费在线看| av毛片久久久久**hd| 国产精品一区二区果冻传媒| 美腿丝袜亚洲综合| 蜜臀va亚洲va欧美va天堂 | 一区二区在线观看不卡| 欧美国产一区二区在线观看| 日韩免费观看高清完整版| 6080亚洲精品一区二区| 欧美日韩国产片| 在线电影国产精品| 51精品久久久久久久蜜臀| 欧美日韩成人一区二区| 欧美视频在线一区| 欧美久久一区二区| 91精品久久久久久久91蜜桃| 91精品国产乱码| 欧美一区二区视频网站| 制服丝袜国产精品| 欧美videossexotv100| 日韩一级高清毛片| 久久久综合网站| 国产视频一区不卡| 亚洲视频一区二区在线观看| 综合欧美亚洲日本| 亚洲主播在线播放| 免播放器亚洲一区| 国产精品中文字幕欧美| 国产精品99久久久久久有的能看| 粉嫩蜜臀av国产精品网站| 成人精品免费视频| 欧洲亚洲国产日韩| 日韩视频一区二区三区在线播放| 亚洲精品在线网站| 中文字幕一区在线| 亚洲成人av免费| 国产一区二区三区在线观看免费视频| 国内精品不卡在线| 一本在线高清不卡dvd| 欧美理论电影在线| 精品国产一区二区亚洲人成毛片| 欧美激情一区在线| 亚洲香肠在线观看| 国产毛片精品视频| 一本色道久久综合亚洲aⅴ蜜桃 | 亚洲国产日韩av| 蜜乳av一区二区| 99国产精品视频免费观看| 欧美日韩精品是欧美日韩精品| 欧美电影免费观看高清完整版 | 欧美极品美女视频| 一区二区三区国产精华| 久久综合综合久久综合| 97se亚洲国产综合自在线观| 欧美日韩的一区二区| 国产精品丝袜一区| 日韩主播视频在线| 91在线精品一区二区三区| 欧美成人伊人久久综合网| 亚洲欧美日本在线| 成人午夜伦理影院| 精品国产免费一区二区三区香蕉| 亚洲精品乱码久久久久| 国产精品18久久久久|