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

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

?? md5.c

?? 相當優秀的 UNIX 進程管理工具
?? C
字號:
/* * $Id: md5.c,v 1.2 2003/10/20 18:59:57 tomcollins Exp $ * Copyright (C) 1999-2003 Inter7 Internet Technologies, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * */#include <string.h>		/* for memcpy() */#include "md5.h"void byteReverse(unsigned char *buf, unsigned longs);/* * Note: this code is harmless on little-endian machines. */void byteReverse(unsigned char *buf, unsigned longs){    uint32 t;    do {	t = (uint32) ((unsigned) buf[3] << 8 | buf[2]) << 16 |	    ((unsigned) buf[1] << 8 | buf[0]);	*(uint32 *) buf = t;	buf += 4;    } while (--longs);}/* * Start MD5 accumulation.  Set bit count to 0 and buffer to mysterious * initialization constants. */void MD5Init(struct MD5Context *ctx){    ctx->buf[0] = 0x67452301;    ctx->buf[1] = 0xefcdab89;    ctx->buf[2] = 0x98badcfe;    ctx->buf[3] = 0x10325476;    ctx->bits[0] = 0;    ctx->bits[1] = 0;}/* * Update context to reflect the concatenation of another buffer full * of bytes. */void MD5Update(struct MD5Context *ctx, unsigned char const *buf, unsigned len){    uint32 t;    /* Update bitcount */    t = ctx->bits[0];    if ((ctx->bits[0] = t + ((uint32) len << 3)) < t)	ctx->bits[1]++;		/* Carry from low to high */    ctx->bits[1] += len >> 29;    t = (t >> 3) & 0x3f;	/* Bytes already in shsInfo->data */    /* Handle any leading odd-sized chunks */    if (t) {	unsigned char *p = (unsigned char *) ctx->in + t;	t = 64 - t;	if (len < t) {	    memcpy(p, buf, len);	    return;	}	memcpy(p, buf, t);	byteReverse(ctx->in, 16);	MD5Transform(ctx->buf, (uint32 *) ctx->in);	buf += t;	len -= t;    }    /* Process data in 64-byte chunks */    while (len >= 64) {	memcpy(ctx->in, buf, 64);	byteReverse(ctx->in, 16);	MD5Transform(ctx->buf, (uint32 *) ctx->in);	buf += 64;	len -= 64;    }    /* Handle any remaining bytes of data. */    memcpy(ctx->in, buf, len);}/* * Final wrapup - pad to 64-byte boundary with the bit pattern  * 1 0* (64-bit count of bits processed, MSB-first) */void MD5Final(unsigned char digest[16], struct MD5Context *ctx){    unsigned count;    unsigned char *p;    /* Compute number of bytes mod 64 */    count = (ctx->bits[0] >> 3) & 0x3F;    /* Set the first char of padding to 0x80.  This is safe since there is       always at least one byte free */    p = ctx->in + count;    *p++ = 0x80;    /* Bytes of padding needed to make 64 bytes */    count = 64 - 1 - count;    /* Pad out to 56 mod 64 */    if (count < 8) {	/* Two lots of padding:  Pad the first block to 64 bytes */	memset(p, 0, count);	byteReverse(ctx->in, 16);	MD5Transform(ctx->buf, (uint32 *) ctx->in);	/* Now fill the next block with 56 bytes */	memset(ctx->in, 0, 56);    } else {	/* Pad block to 56 bytes */	memset(p, 0, count - 8);    }    byteReverse(ctx->in, 14);    /* Append length in bits and transform */    ((uint32 *) ctx->in)[14] = ctx->bits[0];    ((uint32 *) ctx->in)[15] = ctx->bits[1];    MD5Transform(ctx->buf, (uint32 *) ctx->in);    byteReverse((unsigned char *) ctx->buf, 4);    memcpy(digest, ctx->buf, 16);    memset(ctx, 0, sizeof(ctx));	/* In case it's sensitive */}#ifndef ASM_MD5/* The four core functions - F1 is optimized somewhat *//* #define F1(x, y, z) (x & y | ~x & z) */#define F1(x, y, z) (z ^ (x & (y ^ z)))#define F2(x, y, z) F1(z, x, y)#define F3(x, y, z) (x ^ y ^ z)#define F4(x, y, z) (y ^ (x | ~z))/* This is the central step in the MD5 algorithm. */#define MD5STEP(f, w, x, y, z, data, s) \	( w += f(x, y, z) + data,  w = w<<s | w>>(32-s),  w += x )/* * The core of the MD5 algorithm, this alters an existing MD5 hash to * reflect the addition of 16 longwords of new data.  MD5Update blocks * the data and converts bytes into longwords for this routine. */void MD5Transform(uint32 buf[4], uint32 const in[16]){    register uint32 a, b, c, d;    a = buf[0];    b = buf[1];    c = buf[2];    d = buf[3];    MD5STEP(F1, a, b, c, d, in[0] + 0xd76aa478, 7);    MD5STEP(F1, d, a, b, c, in[1] + 0xe8c7b756, 12);    MD5STEP(F1, c, d, a, b, in[2] + 0x242070db, 17);    MD5STEP(F1, b, c, d, a, in[3] + 0xc1bdceee, 22);    MD5STEP(F1, a, b, c, d, in[4] + 0xf57c0faf, 7);    MD5STEP(F1, d, a, b, c, in[5] + 0x4787c62a, 12);    MD5STEP(F1, c, d, a, b, in[6] + 0xa8304613, 17);    MD5STEP(F1, b, c, d, a, in[7] + 0xfd469501, 22);    MD5STEP(F1, a, b, c, d, in[8] + 0x698098d8, 7);    MD5STEP(F1, d, a, b, c, in[9] + 0x8b44f7af, 12);    MD5STEP(F1, c, d, a, b, in[10] + 0xffff5bb1, 17);    MD5STEP(F1, b, c, d, a, in[11] + 0x895cd7be, 22);    MD5STEP(F1, a, b, c, d, in[12] + 0x6b901122, 7);    MD5STEP(F1, d, a, b, c, in[13] + 0xfd987193, 12);    MD5STEP(F1, c, d, a, b, in[14] + 0xa679438e, 17);    MD5STEP(F1, b, c, d, a, in[15] + 0x49b40821, 22);    MD5STEP(F2, a, b, c, d, in[1] + 0xf61e2562, 5);    MD5STEP(F2, d, a, b, c, in[6] + 0xc040b340, 9);    MD5STEP(F2, c, d, a, b, in[11] + 0x265e5a51, 14);    MD5STEP(F2, b, c, d, a, in[0] + 0xe9b6c7aa, 20);    MD5STEP(F2, a, b, c, d, in[5] + 0xd62f105d, 5);    MD5STEP(F2, d, a, b, c, in[10] + 0x02441453, 9);    MD5STEP(F2, c, d, a, b, in[15] + 0xd8a1e681, 14);    MD5STEP(F2, b, c, d, a, in[4] + 0xe7d3fbc8, 20);    MD5STEP(F2, a, b, c, d, in[9] + 0x21e1cde6, 5);    MD5STEP(F2, d, a, b, c, in[14] + 0xc33707d6, 9);    MD5STEP(F2, c, d, a, b, in[3] + 0xf4d50d87, 14);    MD5STEP(F2, b, c, d, a, in[8] + 0x455a14ed, 20);    MD5STEP(F2, a, b, c, d, in[13] + 0xa9e3e905, 5);    MD5STEP(F2, d, a, b, c, in[2] + 0xfcefa3f8, 9);    MD5STEP(F2, c, d, a, b, in[7] + 0x676f02d9, 14);    MD5STEP(F2, b, c, d, a, in[12] + 0x8d2a4c8a, 20);    MD5STEP(F3, a, b, c, d, in[5] + 0xfffa3942, 4);    MD5STEP(F3, d, a, b, c, in[8] + 0x8771f681, 11);    MD5STEP(F3, c, d, a, b, in[11] + 0x6d9d6122, 16);    MD5STEP(F3, b, c, d, a, in[14] + 0xfde5380c, 23);    MD5STEP(F3, a, b, c, d, in[1] + 0xa4beea44, 4);    MD5STEP(F3, d, a, b, c, in[4] + 0x4bdecfa9, 11);    MD5STEP(F3, c, d, a, b, in[7] + 0xf6bb4b60, 16);    MD5STEP(F3, b, c, d, a, in[10] + 0xbebfbc70, 23);    MD5STEP(F3, a, b, c, d, in[13] + 0x289b7ec6, 4);    MD5STEP(F3, d, a, b, c, in[0] + 0xeaa127fa, 11);    MD5STEP(F3, c, d, a, b, in[3] + 0xd4ef3085, 16);    MD5STEP(F3, b, c, d, a, in[6] + 0x04881d05, 23);    MD5STEP(F3, a, b, c, d, in[9] + 0xd9d4d039, 4);    MD5STEP(F3, d, a, b, c, in[12] + 0xe6db99e5, 11);    MD5STEP(F3, c, d, a, b, in[15] + 0x1fa27cf8, 16);    MD5STEP(F3, b, c, d, a, in[2] + 0xc4ac5665, 23);    MD5STEP(F4, a, b, c, d, in[0] + 0xf4292244, 6);    MD5STEP(F4, d, a, b, c, in[7] + 0x432aff97, 10);    MD5STEP(F4, c, d, a, b, in[14] + 0xab9423a7, 15);    MD5STEP(F4, b, c, d, a, in[5] + 0xfc93a039, 21);    MD5STEP(F4, a, b, c, d, in[12] + 0x655b59c3, 6);    MD5STEP(F4, d, a, b, c, in[3] + 0x8f0ccc92, 10);    MD5STEP(F4, c, d, a, b, in[10] + 0xffeff47d, 15);    MD5STEP(F4, b, c, d, a, in[1] + 0x85845dd1, 21);    MD5STEP(F4, a, b, c, d, in[8] + 0x6fa87e4f, 6);    MD5STEP(F4, d, a, b, c, in[15] + 0xfe2ce6e0, 10);    MD5STEP(F4, c, d, a, b, in[6] + 0xa3014314, 15);    MD5STEP(F4, b, c, d, a, in[13] + 0x4e0811a1, 21);    MD5STEP(F4, a, b, c, d, in[4] + 0xf7537e82, 6);    MD5STEP(F4, d, a, b, c, in[11] + 0xbd3af235, 10);    MD5STEP(F4, c, d, a, b, in[2] + 0x2ad7d2bb, 15);    MD5STEP(F4, b, c, d, a, in[9] + 0xeb86d391, 21);    buf[0] += a;    buf[1] += b;    buf[2] += c;    buf[3] += d;}#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品视频123区在线观看| 日本欧美一区二区在线观看| 国产精品资源在线看| 久久一夜天堂av一区二区三区| 国产乱码一区二区三区| 国产欧美一区二区三区网站 | 亚洲精品一卡二卡| 欧美一激情一区二区三区| 青草国产精品久久久久久| 久久综合久色欧美综合狠狠| 国产精品自拍一区| 亚洲女与黑人做爰| 欧美日韩精品福利| 国产呦精品一区二区三区网站| 国产精品免费视频网站| 欧美亚洲禁片免费| 国产在线一区二区| 1024成人网| 日韩小视频在线观看专区| 国产**成人网毛片九色 | 免费成人美女在线观看| 久久婷婷久久一区二区三区| 成人精品小蝌蚪| 午夜精品久久久久久久久| 久久久九九九九| 在线观看日韩电影| 国产精品资源在线| 亚洲国产精品久久久久秋霞影院| 欧美成人一区二区三区| 91视频.com| 精品一区二区在线观看| 亚洲视频在线一区二区| 欧美成人伊人久久综合网| yourporn久久国产精品| 日本 国产 欧美色综合| 国产精品乱码一区二三区小蝌蚪| 欧美精品乱人伦久久久久久| 暴力调教一区二区三区| 久久国产剧场电影| 亚洲午夜免费视频| 欧美激情在线看| 欧美一区二区在线播放| 91小视频免费观看| 国产在线麻豆精品观看| 亚洲6080在线| 日韩伦理免费电影| 国产视频一区在线观看| 日韩三级在线观看| 欧美视频完全免费看| 99麻豆久久久国产精品免费优播| 在线一区二区三区做爰视频网站| 六月丁香婷婷久久| 婷婷中文字幕一区三区| 中文字幕在线观看不卡视频| 2023国产一二三区日本精品2022| 欧美日韩另类国产亚洲欧美一级| 972aa.com艺术欧美| 成人性生交大片免费看中文网站| 奇米综合一区二区三区精品视频 | 欧美吞精做爰啪啪高潮| 97精品久久久午夜一区二区三区 | 精品久久人人做人人爰| 日韩丝袜美女视频| 欧美三日本三级三级在线播放| av男人天堂一区| 国产乱一区二区| 韩国精品主播一区二区在线观看| 视频一区二区欧美| 亚洲高清不卡在线观看| 亚洲一区二区三区不卡国产欧美 | 在线观看www91| 91麻豆精东视频| 99久久精品国产导航| 99久久精品国产导航| 99久久夜色精品国产网站| caoporm超碰国产精品| 成人小视频在线观看| 大美女一区二区三区| www.性欧美| 成人av集中营| 99久久国产综合精品女不卡| www.色精品| 99久久精品免费看国产免费软件| www.亚洲精品| 欧美在线视频日韩| 在线成人免费视频| 精品国产区一区| 视频一区国产视频| 免费久久99精品国产| 久久99精品久久久久久国产越南| 国产麻豆视频一区二区| 国产黄色精品网站| proumb性欧美在线观看| 色婷婷综合中文久久一本| 欧美日韩和欧美的一区二区| 欧美一区二区在线视频| 久久精品亚洲乱码伦伦中文| 国产精品乱码久久久久久| 亚洲人成亚洲人成在线观看图片| 一区二区国产视频| 日韩高清在线一区| 狠狠色丁香久久婷婷综合丁香| 成人黄动漫网站免费app| 色婷婷国产精品| 日韩欧美精品在线| 国产精品免费看片| 天堂一区二区在线| 国产精品一区二区久激情瑜伽| 成人动漫av在线| 91黄色小视频| 2023国产精品| 亚洲精品国产精华液| 久久99最新地址| 91麻豆成人久久精品二区三区| 欧美精品在线一区二区| 国产欧美一区二区精品性色 | 久久久精品综合| 亚洲精品日韩一| 老司机免费视频一区二区三区| www.激情成人| 欧美一区二区三区精品| 国产精品免费观看视频| 日韩av中文在线观看| bt欧美亚洲午夜电影天堂| 欧美日韩视频在线第一区| 欧美高清在线一区| 日韩精品三区四区| 成人国产一区二区三区精品| 国产精品激情偷乱一区二区∴| 亚洲最色的网站| 国产v综合v亚洲欧| 欧美一级欧美三级| 一区二区激情小说| 成人一区在线看| 欧美电视剧在线观看完整版| 亚洲激情第一区| 成人国产电影网| 精品国产乱码久久久久久图片| 一区二区欧美精品| 成人精品国产福利| 精品成人私密视频| 日韩成人午夜精品| 日本丶国产丶欧美色综合| 国产日产欧产精品推荐色| 久久精品国产精品青草| 欧美日韩激情在线| 一区二区在线观看免费视频播放| 国产激情精品久久久第一区二区| 宅男在线国产精品| 亚洲不卡在线观看| 91福利区一区二区三区| 国产精品网友自拍| 国产精品18久久久久久久久| 欧美草草影院在线视频| 日韩成人免费在线| 欧美一区二区在线不卡| 午夜不卡av在线| 欧美久久久一区| 午夜婷婷国产麻豆精品| 欧洲国内综合视频| 亚洲综合激情另类小说区| 91视频一区二区| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆 | 日本在线不卡视频| 91精品国产综合久久精品麻豆 | 欧美精品日韩一本| 亚洲v日本v欧美v久久精品| 91电影在线观看| 亚洲国产视频直播| 欧美视频一区二区三区| 亚洲成人av一区二区| 欧美日韩和欧美的一区二区| 婷婷一区二区三区| 日韩一二三四区| 精久久久久久久久久久| 久久久久久久久久电影| 国产91清纯白嫩初高中在线观看| 国产亚洲欧美一级| av中文一区二区三区| 一卡二卡三卡日韩欧美| 欧美性猛交一区二区三区精品| 午夜精品影院在线观看| 欧美一级二级三级乱码| 狠狠狠色丁香婷婷综合激情| 国产日韩欧美制服另类| 91欧美激情一区二区三区成人| 亚洲欧美成aⅴ人在线观看| 欧美唯美清纯偷拍| 看电影不卡的网站| 国产香蕉久久精品综合网| 懂色av中文字幕一区二区三区| 亚洲婷婷国产精品电影人久久| 色网综合在线观看| 日本成人在线网站| 国产日本欧洲亚洲| 色综合久久久久综合99| 一本到高清视频免费精品| 日韩精品欧美成人高清一区二区| 日韩视频免费观看高清完整版在线观看 | 亚洲精品一二三区|