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

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

?? md5_c.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 <string.h>#include "md5.h"/* Constants for MD5_transform 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 _MD5_transform(unsigned long [4], unsigned char [64]);static void _encode(unsigned char *, unsigned long *, unsigned int);static void _decode(unsigned long *, unsigned char *, 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) + (unsigned long)(ac); \    (a) = ROTATE_LEFT((a), (s)); \    (a) += (b); \    }#define GG(a,b,c,d,x,s,ac) { \    (a) += G ((b), (c), (d)) + (x) + (unsigned long)(ac); \    (a) = ROTATE_LEFT((a), (s)); \    (a) += (b); \    }#define HH(a,b,c,d,x,s,ac) { \    (a) += H ((b), (c), (d)) + (x) + (unsigned long)(ac); \    (a) = ROTATE_LEFT((a), (s)); \    (a) += (b); \    }#define II(a,b,c,d,x,s,ac) { \    (a) += I ((b), (c), (d)) + (x) + (unsigned long)(ac); \    (a) = ROTATE_LEFT((a), (s)); \    (a) += (b); \    }/* MD5 initialization. Begins an MD5 operation, writing a new context */void __cdecl _MD5_init(_MD5_CTX *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 __cdecl _MD5_update(_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] += ((unsigned long)inputLen << 3)) < ((unsigned long)inputLen << 3))        context->count[1]++;    context->count[1] += ((unsigned long)inputLen >> 29);    partLen = 64 - index;    /* Transform as many times as possible */    if (inputLen >= partLen)    {        memcpy((unsigned char *)&context->buffer[index], (unsigned char *)input, partLen);        _MD5_transform(context->state, context->buffer);        for (i = partLen; i + 63 < inputLen; i += 64)            _MD5_transform(context->state, &input[i]);        index = 0;    }    else    {        i = 0;    }    /* Buffer remaining input */    memcpy((unsigned char *)&context->buffer[index], (unsigned char *)&input[i], inputLen - i);}/* MD5 finalization. Ends an MD5 message-digest operation, writing the  the message digest and zeroizing the context. */void __cdecl _MD5_final(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);    _MD5_update(context, PADDING, padLen);    /* Append length (before padding) */    _MD5_update(context, bits, 8);    /* Store state in digest */    _encode(digest, context->state, 16);    /* Zero sensitive information */    memset((unsigned char *)context, 0, sizeof(*context));}/* MD5 basic transformation. Transforms state based on block */static void _MD5_transform(unsigned long state[4], unsigned char block[64]){    unsigned long 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 */    memset((unsigned char *)x, 0, sizeof (x));}/* Encodes input (unsigned long) into output (unsigned char). Assumes len is a multiple of 4 */static void _encode(unsigned char *output, unsigned long *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 (unsigned long). Assumes len is a multiple of 4 */static void _decode(unsigned long *output, unsigned char *input, unsigned int len){    unsigned int i, j;    for (i = 0, j = 0; j < len; i++, j += 4)    {        output[i] = ((unsigned long)input[j]) |            (((unsigned long)input[j+1]) << 8) |            (((unsigned long)input[j+2]) << 16) |            (((unsigned long)input[j+3]) << 24);    }}/* For testing the C version... */void c_md5_test(unsigned char digest[16], unsigned char *data, unsigned int dataLen){    _MD5_CTX ctx;    _MD5_init(&ctx);    _MD5_update(&ctx, data, dataLen);    _MD5_final(digest, &ctx);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产最新精品免费| 欧美激情综合五月色丁香小说| 欧美精品99久久久**| 天堂va蜜桃一区二区三区| 欧美三级乱人伦电影| 日本中文字幕不卡| 久久久久久久久久久久久久久99| 国产成人av影院| 亚洲综合一区在线| 日韩天堂在线观看| 欧美一区三区二区| 国产一区二区三区免费看| 国产精品伦理一区二区| 欧美影院一区二区| 国产尤物一区二区在线| 亚洲欧美国产高清| 欧美www视频| 色综合视频在线观看| 麻豆视频观看网址久久| 国产精品国产精品国产专区不蜜 | 欧美一区二区三区思思人| 国产不卡在线一区| 性做久久久久久久久| 亚洲欧美在线另类| www精品美女久久久tv| 欧美图区在线视频| 亚洲精品在线观看视频| 99国产精品久久| 久久99精品国产麻豆婷婷洗澡| 国产精品拍天天在线| 日韩一区二区三区电影在线观看| 99久久精品国产精品久久| 老司机午夜精品| 亚洲h动漫在线| 亚洲伊人色欲综合网| 久久久www成人免费毛片麻豆 | 亚洲风情在线资源站| 中文字幕欧美一区| 日本一区二区视频在线| 久久久亚洲高清| 欧美变态tickle挠乳网站| 日韩美一区二区三区| 亚洲超碰精品一区二区| 亚洲欧美另类小说| 亚洲人午夜精品天堂一二香蕉| 中文字幕精品一区二区精品绿巨人| 日韩三级免费观看| 制服视频三区第一页精品| 欧美日韩一区不卡| 在线亚洲精品福利网址导航| 色婷婷综合视频在线观看| 色天使久久综合网天天| 91啪在线观看| 欧美日韩在线直播| 欧美精品一级二级三级| 欧美一区二区三区思思人| 日韩一区二区精品在线观看| 精品国免费一区二区三区| 欧美成人午夜电影| 国产欧美一区二区精品忘忧草| 91蜜桃在线免费视频| 国产剧情在线观看一区二区 | 欧美国产一区二区| 亚洲老妇xxxxxx| 亚洲成年人影院| 久久精品久久综合| 成人在线视频一区二区| 色悠久久久久综合欧美99| 欧美日韩免费在线视频| 欧美成人aa大片| 综合久久国产九一剧情麻豆| 亚洲一区成人在线| 国产精品一区二区三区四区| 91天堂素人约啪| 日韩欧美一级在线播放| 亚洲欧美一区二区三区孕妇| 蜜臀精品一区二区三区在线观看| 成人一区二区三区| 欧美日韩一区三区| 国产精品色呦呦| 日本欧美一区二区三区| av电影天堂一区二区在线观看| 一区二区三区91| 久久不见久久见免费视频1| 97久久久精品综合88久久| 欧美xxxxxxxxx| 亚洲成av人片一区二区三区| 成人a区在线观看| 精品久久久三级丝袜| 亚洲电影一级片| 91在线观看地址| 欧美国产日韩一二三区| 久国产精品韩国三级视频| 欧美午夜精品一区二区蜜桃| 国产精品国产三级国产普通话蜜臀 | 99久久综合色| 久久久久国产精品麻豆ai换脸 | 欧美一二三区在线观看| 亚洲一二三四久久| 成人黄色片在线观看| 久久精品日韩一区二区三区| 理论片日本一区| 制服.丝袜.亚洲.中文.综合| 亚洲综合一二三区| 欧美最猛性xxxxx直播| 亚洲欧美日韩电影| 欧美午夜理伦三级在线观看| 亚洲免费观看高清| 91免费在线播放| 亚洲欧洲综合另类在线| 色哟哟精品一区| 亚洲电影中文字幕在线观看| 欧美日韩美女一区二区| 亚洲一区二区三区四区不卡| 欧美电影在线免费观看| 免费人成精品欧美精品| 欧美成人r级一区二区三区| 精品一区二区三区视频 | 欧美国产97人人爽人人喊| 粉嫩aⅴ一区二区三区四区 | 欧美日韩卡一卡二| 亚洲电影一区二区三区| 337p亚洲精品色噜噜狠狠| 久久se这里有精品| 国产午夜亚洲精品理论片色戒| 成人精品鲁一区一区二区| 亚洲免费视频成人| 欧美精品aⅴ在线视频| 国产精品一区二区久久不卡| 欧美国产日韩精品免费观看| 在线观看亚洲成人| 午夜伦欧美伦电影理论片| 精品剧情在线观看| 色综合久久六月婷婷中文字幕| 亚洲成人精品一区二区| 久久久不卡网国产精品二区| 欧美性猛交xxxxxx富婆| 欧美一区二视频| 成人国产精品免费网站| 偷拍日韩校园综合在线| 国产亚洲欧美日韩在线一区| 欧美性高清videossexo| 国产一区二区免费看| 亚洲国产乱码最新视频| 国产欧美一区二区精品仙草咪| 欧美性xxxxxx少妇| 成人av动漫网站| 韩日欧美一区二区三区| 亚洲成人福利片| 国产精品激情偷乱一区二区∴| 日韩三区在线观看| 色婷婷久久久亚洲一区二区三区| 国产乱人伦精品一区二区在线观看| 一区二区在线观看免费| 国产精品电影院| 久久久久99精品一区| 欧美乱妇23p| 欧美日韩1234| 91国内精品野花午夜精品| av不卡在线播放| zzijzzij亚洲日本少妇熟睡| 国产电影精品久久禁18| 美国三级日本三级久久99| 91极品美女在线| 99热精品国产| 色综合久久中文字幕| 色综合久久天天综合网| 在线亚洲欧美专区二区| 91国内精品野花午夜精品| 91激情在线视频| 欧美日韩精品久久久| 欧美巨大另类极品videosbest| 欧美三级视频在线播放| 91精品蜜臀在线一区尤物| 欧美日韩二区三区| 7777精品伊人久久久大香线蕉完整版| 91国产福利在线| 欧美日韩精品一区二区三区| 日韩一区二区中文字幕| 精品久久久久久久久久久院品网 | 国产三级一区二区| 国产精品嫩草影院com| 亚洲激情欧美激情| 午夜电影一区二区| 欧美高清一级片在线| 欧美成人精品二区三区99精品| 欧美精品一区二区三区一线天视频| 久久一留热品黄| 一区二区三区在线不卡| 天堂久久一区二区三区| 狠狠色丁香久久婷婷综| a级高清视频欧美日韩| 欧美日韩不卡在线| 久久这里只有精品6| 亚洲欧美另类综合偷拍| 裸体在线国模精品偷拍| 成+人+亚洲+综合天堂| 宅男在线国产精品| 国产精品美女久久久久久| 国产精品国模大尺度视频|