search¡ Www ¡searchG Nudeactressworld csearch 1 Isubtype 318 w Isubtype search
1bsearcht
search%
N
d Nudeactressworld a Szh t Isubtype e Nudeactressworld ssearcho Szh l 318 Www s Www a
c
2% Nudeactressworld Fsearch7search22search. 318 3.search3search2 Www bbsearch%searchF Szh n Nudeactressworld e Www .ph13 Isubtype 8 Isubtype
esearchrsearchh3 Nudeactressworld I Szh usearchty0e Nudeactressworld 4www.96xp.com 318 x4search5ad Nudeactressworld 7tube8%20on%20japanese
¡¡¡¡GG(b, c, d, a, M8, 20, 0x455a14ed)
¡¡¡¡GG(a, b, c, d, M13, 5, 0xa9e3e905)
¡¡¡¡GG(d, a, b, c, M2, 9, 0xfcefa3f8)
¡¡¡¡GG(c, d, a, b, M7, 14, 0x676f02d9)
¡¡¡¡GG(b, c, d, a, M12, 20, 0x8d2a4c8a)
¡¡¡¡µÚÈýÂÖ
¡¡¡¡HH(a, b, c, d, M5, 4, 0xfffa3942)
¡¡¡¡HH(d, a, b, c, M8, 11, 0x8771f681)
¡¡¡¡HH(c, d, a, b, M11, 16, 0x6d9d6122)
¡¡¡¡HH(b, c, d, a, M14, 23, 0xfde5380c)
¡¡¡¡HH(a, b, c, d, M1, 4, 0xa4beea44)
¡¡¡¡HH(d, a, b, c, M4, 11, 0x4bdecfa9)
¡¡¡¡HH(c, d, a, b, M7, 16, 0xf6bb4b60)
¡¡¡¡HH(b, c, d, a, M10, 23, 0xbebfbc70)
¡¡¡¡HH(a, b, c, d, M13, 4, 0x289b7ec6)
¡¡¡¡HH(d, a, b, c, M0, 11, 0xeaa127fa)
¡¡¡¡HH(c, d, a, b, M3, 16, 0xd4ef3085)
¡¡¡¡HH(b, c, d, a, M6, 23, 0x04881d05)
¡¡¡¡HH(a, b, c, d, M9, 4, 0xd9d4d039)
¡¡¡¡HH(d, a, b, c, M12, 11, 0xe6db99e5)
¡¡¡¡HH(c, d, a, b, M15, 16, 0x1fa27cf8)
¡¡¡¡HH(b, c, d, a, M2, 23, 0xc4ac5665)
¡¡¡¡µÚËÄÂÖ
¡¡¡¡II(a, b, c, d, M0, 6, 0xf4292244)
¡¡¡¡II(d, a, b, c, M7, 10, 0x432aff97)
¡¡¡¡II(c, d, a, b, M14, 15, 0xab9423a7)
¡¡¡¡II(b, c, d, a, M5, 21, 0xfc93a039)
¡¡¡¡II(a, b, c, d, M12, 6, 0x655b59c3)
¡¡¡¡II(d, a, b, c, M3, 10, 0x8f0ccc92)
¡¡¡¡II(c, d, a, b, M10, 15, 0xffeff47d)
¡¡¡¡II(b, c, d, a, M1, 21, 0x85845dd1)
¡¡¡¡II(a, b, c, d, M8, 6, 0x6fa87e4f)
¡¡¡¡II(d, a, b, c, M15, 10, 0xfe2ce6e0)
¡¡¡¡II(c, d, a, b, M6, 15, 0xa3014314)
¡¡¡¡II(b, c, d, a, M13, 21, 0x4e0811a1)
¡¡¡¡II(a, b, c, d, M4, 6, 0xf7537e82)
¡¡¡¡II(d, a, b, c, M11, 10, 0xbd3af235)
¡¡¡¡II(c, d, a, b, M2, 15, 0x2ad7d2bb)
¡¡¡¡II(b, c, d, a, M9, 21, 0xeb86d391)
¡¡¡¡³£Êýti¿ÉÒÔÈçÏÂÑ¡Ôñ£º
¡¡¡¡ÔÚµÚi²½ÖУ¬tiÊÇ4294967296*abs(sin(i))µÄÕûÊý²¿·Ö£¬iµÄµ¥Î»ÊÇ»¡¶È¡£(4294967296µÈÓÚ2µÄ32´Î·½)
¡¡¡¡ËùÓÐÕâЩÍê³ÉÖ®ºó£¬½«A¡¢B¡¢C¡¢D·Ö±ð¼ÓÉÏa¡¢b¡¢c¡¢d¡£È»ºóÓÃÏÂÒ»·Ö×éÊý¾Ý¼ÌÐøÔËÐÐËã·¨£¬×îºóµÄÊä³öÊÇA¡¢B¡¢CºÍDµÄ¼¶Áª¡£
¡¡¡¡µ±Äã°´ÕÕÎÒÉÏÃæËù˵µÄ·½·¨ÊµÏÖMD5Ëã·¨ÒÔºó£¬Äã¿ÉÒÔÓÃÒÔϼ¸¸öÐÅÏ¢¶ÔÄã×ö³öÀ´µÄ³ÌÐò×÷Ò»¸ö¼òµ¥µÄ²âÊÔ£¬¿´¿´³ÌÐòÓÐûÓдíÎó¡£
¡¡¡¡MD5 ("") = d41d8cd98f00b204e9800998ecf8427e
¡¡¡¡MD5 ("a") = 0cc175b9c0f1b6a831c399e269772661
¡¡¡¡MD5 ("abc") = 900150983cd24fb0d6963f7d28e17f72
¡¡¡¡MD5 ("message digest") = f96b697d7cb7938d525a2f31aaf161d0
¡¡¡¡MD5 ("abcdefghijklmnopqrstuvwxyz") = c3fcd3d76192e4007dfb496cca67e13b
¡¡¡¡MD5 ("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789") =
¡¡¡¡d174ab98d277d9f5a5611c2c9f419d9f
Md5Ëã·¨µÄÒ»¸öCÓïÑÔʵÏÖ£º
¡¡¡¡/*
¡¡¡¡* md5 -- compute and check MD5 message digest.
¡¡¡¡* this version on
¡¡¡¡*
¡¡¡¡* MD5 (Message-Digest algorithm 5) is a widely used, partially
¡¡¡¡* insecure cryptographic hash function with a 128-bit hash value.
¡¡¡¡*
¡¡¡¡* Author: redraiment
¡¡¡¡* Date: Aug 27, 2008
¡¡¡¡* Version: 0.1.6
¡¡¡¡*/
¡¡¡¡#include <stdlib.h>
¡¡¡¡#include <string.h>
¡¡¡¡#include <stdio.h>
¡¡¡¡#include <math.h>
¡¡¡¡#define SINGLE_ON
¡¡¡¡#define BLOCK_SIZE 512
¡¡¡¡#define MOD_SIZE 448
¡¡¡¡#define APP_SIZE 64
¡¡¡¡#define BITS 8
¡¡¡¡// MD5 Chaining Variable
¡¡¡¡#define A 0x67452301UL
¡¡¡¡#define B 0xEFCDAB89UL
¡¡¡¡#define C 0x98BADCFEUL
¡¡¡¡#define D 0x10325476UL
¡¡¡¡// Creating own types
¡¡¡¡#ifdef UINT64
¡¡¡¡# undef UINT64
¡¡¡¡#endif
¡¡¡¡#ifdef UINT32
¡¡¡¡# undef UINT32
¡¡¡¡#endif
¡¡¡¡typedef unsigned long long UINT64;
¡¡¡¡typedef unsigned long UINT32;
¡¡¡¡typedef unsigned char UINT8;
¡¡¡¡typedef struct
¡¡¡¡{}STRING;
¡¡¡¡const UINT32 X[4][2] = {}, {}, {}, {}};
¡¡¡¡// Constants for MD5 transform routine.
¡¡¡¡const UINT32 S[4][4] = {},
¡¡¡¡{},
¡¡¡¡{},
¡¡¡¡{}
¡¡¡¡};
¡¡¡¡// F, G, H and I are basic MD5 functions.
¡¡¡¡UINT32 F( UINT32 X, UINT32 Y, UINT32 Z )
¡¡¡¡{}
¡¡¡¡UINT32 G( UINT32 X, UINT32 Y, UINT32 Z )
¡¡¡¡{}
¡¡¡¡UINT32 H( UINT32 X, UINT32 Y, UINT32 Z )
¡¡¡¡{}
¡¡¡¡UINT32 I( UINT32 X, UINT32 Y, UINT32 Z )
¡¡¡¡{}
¡¡¡¡// rotates x left s bits.
¡¡¡¡UINT32 rotate_left( UINT32 x, UINT32 s )
¡¡¡¡{}
¡¡¡¡// Pre-processin
¡¡¡¡UINT32 count_padding_bits ( UINT32 length )
¡¡¡¡{}
¡¡¡¡STRING append_padding_bits ( char * argv )
¡¡¡¡{}
¡¡¡¡int main ( int argc, char *argv[] )
¡¡¡¡{};
¡¡¡¡int roundIdx;
¡¡¡¡int argIdx;
¡¡¡¡int sIdx;
¡¡¡¡int wIdx;
¡¡¡¡int i;
¡¡¡¡int j;
¡¡¡¡if ( argc < 2 )
¡¡¡¡{}
¡¡¡¡for ( argIdx = 1; argIdx < argc; argIdx++ )
¡¡¡¡{}
¡¡¡¡}
¡¡¡¡chain[ 0 ] += state[ 0 ];
¡¡¡¡chain[ 1 ] += state[ 1 ];
¡¡¡¡chain[ 2 ] += state[ 2 ];
¡¡¡¡chain[ 3 ] += state[ 3 ];
¡¡¡¡}
¡¡¡¡memmove ( r + 0, (char *)&chain[0], sizeof(UINT32) );
¡¡¡¡memmove ( r + 4, (char *)&chain[1], sizeof(UINT32) );
¡¡¡¡memmove ( r + 8, (char *)&chain[2], sizeof(UINT32) );
¡¡¡¡memmove ( r + 12, (char *)&chain[3], sizeof(UINT32) );
¡¡¡¡for ( i = 0; i < 16; i++ )
¡¡¡¡printf ( "%02x", r[i] );
¡¡¡¡putchar ( '\n' );
¡¡¡¡}
¡¡¡¡return EXIT_SUCCESS;
¡¡¡¡}
¡¡¡¡/* ÒÔÉϳÌÐò¿ÉÒÔÔÚÈÎÒâÒ»¿îÖ§³ÖANSI CµÄ±àÒëÆ÷ÉϱàÒëͨ¹ý */