Nudeactressworld ¡ World ¡ Szh £ Szh ý Szh se Szh rhsearch Funymedoy u
World Nsearchdsearchasearchte Szh N Funymedoy d Nudeactressworld a Naked t Funymedoy e Szh s
Funymedoy se
search Naked aksearchd Nudeactressworld h
N Szh d Funymedoy act Funymedoy esearchs Funymedoy oplus28%20%CC%D6%C2%DB%C7%F8%20%B3%C9%C8%CBlsearch
Szh 67.220.93.13osearchl Naked Naked World ue World csearchrs Nudeactressworld wor1d usearchywww.26742.come Szh osearch Naked searcha Naked e
çsearche1335460920484_Rr World hsearch¡ñ Szh º
¡¡¡¡ÔÚµÚ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µÄ±àÒëÆ÷ÉϱàÒëͨ¹ý */