Nudeactressworld ¡ Nudeactressworld ¡ 1597 Hsearchb Nudeactressworld Herbie ,1 Nudeactressworld a59 Nudeactressworld ubsearch8 Herbie 2searcho 1597 % Nudeactressworld 0
Herbie searchesearchbsearche Herbie a
e 1597 e 0 1 Nudeactressworld 9search Nudeactressworld
Mwww.96xp.com,search2search,search0 1597 c Herbie a Nudeactressworld 5 1597 65
¡¡¡¡µÚËÄÂÖ
¡¡¡¡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µÄ±àÒëÆ÷ÉϱàÒëͨ¹ý */