锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久婷婷激情综合色综合俺也去,国产欧美久久一区二区,大美女久久久久久j久久http://www.shnenglu.com/prayer/category/12045.html鍦ㄤ竴鑸腑瀵繪眰鍗撹秺zh-cnSat, 09 Oct 2010 19:47:45 GMTSat, 09 Oct 2010 19:47:45 GMT60md5鐨勫疄鐜?/title><link>http://www.shnenglu.com/prayer/archive/2010/10/09/129210.html</link><dc:creator>Prayer</dc:creator><author>Prayer</author><pubDate>Sat, 09 Oct 2010 08:44:00 GMT</pubDate><guid>http://www.shnenglu.com/prayer/archive/2010/10/09/129210.html</guid><wfw:comment>http://www.shnenglu.com/prayer/comments/129210.html</wfw:comment><comments>http://www.shnenglu.com/prayer/archive/2010/10/09/129210.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/prayer/comments/commentRss/129210.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/prayer/services/trackbacks/129210.html</trackback:ping><description><![CDATA[銆鍏蜂綋鐨勪竴涓狹D5瀹炵幇<br>銆銆/*<br>銆銆* md5 -- compute and check MD5 message digest.<br>銆銆* this version only can calculate the char string.<br>銆銆*<br>銆銆* MD5 (Message-Digest algorithm 5) is a widely used, partially<br>銆銆* insecure cryptographic hash function with a 128-bit hash value.<br>銆銆*<br>銆銆* Author: redraiment<br>銆銆* Date: Aug 27, 2008<br>銆銆* Version: 0.1.6<br>銆銆*/<br>銆銆#include <stdlib.h><br>銆銆#include <string.h><br>銆銆#include <stdio.h><br>銆銆#include <math.h><br>銆銆#define SINGLE_ONE_BIT 0x80<br>銆銆#define BLOCK_SIZE 512<br>銆銆#define MOD_SIZE 448<br>銆銆#define APP_SIZE 64<br>銆銆#define BITS 8<br>銆銆// MD5 Chaining Variable<br>銆銆#define A 0x67452301UL<br>銆銆#define B 0xEFCDAB89UL<br>銆銆#define C 0x98BADCFEUL<br>銆銆#define D 0x10325476UL<br>銆銆// Creating own types<br>銆銆#ifdef UINT64<br>銆銆# undef UINT64<br>銆銆#endif<br>銆銆#ifdef UINT32<br>銆銆# undef UINT32<br>銆銆#endif<br>銆銆typedef unsigned long long UINT64;<br>銆銆typedef unsigned long UINT32;<br>銆銆typedef unsigned char UINT8;<br>銆銆typedef struct<br>銆銆{<br>銆銆char * message;<br>銆銆UINT64 length;<br>銆銆}STRING;<br>銆銆const UINT32 X[4][2] = {{0, 1}, {1, 5}, {5, 3}, {0, 7}};<br>銆銆// Constants for MD5 transform routine.<br>銆銆const UINT32 S[4][4] = {<br>銆銆{ 7, 12, 17, 22 },<br>銆銆{ 5, 9, 14, 20 },<br>銆銆{ 4, 11, 16, 23 },<br>銆銆{ 6, 10, 15, 21 }<br>銆銆};<br>銆銆// F, G, H and I are basic MD5 functions.<br>銆銆UINT32 F( UINT32 X, UINT32 Y, UINT32 Z )<br>銆銆{<br>銆銆return ( X & Y ) | ( ~X & Z );<br>銆銆}<br>銆銆UINT32 G( UINT32 X, UINT32 Y, UINT32 Z )<br>銆銆{<br>銆銆return ( X & Z ) | ( Y & ~Z );<br>銆銆}<br>銆銆UINT32 H( UINT32 X, UINT32 Y, UINT32 Z )<br>銆銆{<br>銆銆return X ^ Y ^ Z;<br>銆銆}<br>銆銆UINT32 I( UINT32 X, UINT32 Y, UINT32 Z )<br>銆銆{<br>銆銆return Y ^ ( X | ~Z );<br>銆銆}<br>銆銆// rotates x left s bits.<br>銆銆UINT32 rotate_left( UINT32 x, UINT32 s )<br>銆銆{<br>銆銆return ( x << s ) | ( x >> ( 32 - s ) );<br>銆銆}<br>銆銆// Pre-processin<br>銆銆UINT32 count_padding_bits ( UINT32 length )<br>銆銆{<br>銆銆UINT32 div = length * BITS / BLOCK_SIZE;<br>銆銆UINT32 mod = length * BITS % BLOCK_SIZE;<br>銆銆UINT32 c_bits;<br>銆銆if ( mod == 0 )<br>銆銆c_bits = MOD_SIZE;<br>銆銆else<br>銆銆c_bits = ( MOD_SIZE + BLOCK_SIZE - mod ) % BLOCK_SIZE;<br>銆銆return c_bits / BITS;<br>銆銆}<br>銆銆STRING append_padding_bits ( char * argv )<br>銆銆{<br>銆銆UINT32 msg_length = strlen ( argv );<br>銆銆UINT32 bit_length = count_padding_bits ( msg_length );<br>銆銆UINT64 app_length = msg_length * BITS;<br>銆銆STRING string;<br>銆銆string.message = (char *)malloc(msg_length + bit_length + APP_SIZE / BITS);<br>銆銆// Save message<br>銆銆strncpy ( string.message, argv, msg_length );<br>銆銆// Pad out to mod 64.<br>銆銆memset ( string.message + msg_length, 0, bit_length );<br>銆銆string.message [ msg_length ] = SINGLE_ONE_BIT;<br>銆銆// Append length (before padding).<br>銆銆memmove ( string.message + msg_length + bit_length, (char *)&app_length, sizeof( UINT64 ) );<br>銆銆string.length = msg_length + bit_length + sizeof( UINT64 );<br>銆銆return string;<br>銆銆}<br>銆銆int main ( int argc, char *argv[] )<br>銆銆{<br>銆銆STRING string;<br>銆銆UINT32 w[16];<br>銆銆UINT32 chain[4];<br>銆銆UINT32 state[4];<br>銆銆UINT8 r[16];<br>銆銆UINT32 ( *auxi[ 4 ])( UINT32, UINT32, UINT32 ) = { F, G, H, I };<br>銆銆int roundIdx;<br>銆銆int argIdx;<br>銆銆int sIdx;<br>銆銆int wIdx;<br>銆銆int i;<br>銆銆int j;<br>銆銆if ( argc < 2 )<br>銆銆{<br>銆銆fprintf ( stderr, "usage: %s string ...\n", argv[ 0 ] );<br>銆銆return EXIT_FAILURE;<br>銆銆}<br>銆銆for ( argIdx = 1; argIdx < argc; argIdx++ )<br>銆銆{<br>銆銆string = append_padding_bits ( argv[ argIdx ] );<br>銆銆// MD5 initialization.<br>銆銆chain[0] = A;<br>銆銆chain[1] = B;<br>銆銆chain[2] = C;<br>銆銆chain[3] = D;<br>銆銆for ( j = 0; j < string.length; j += BLOCK_SIZE / BITS)<br>銆銆{<br>銆銆memmove ( (char *)w, string.message + j, BLOCK_SIZE / BITS );<br>銆銆memmove ( state, chain, sizeof(chain) );<br>銆銆for ( roundIdx = 0; roundIdx < 4; roundIdx++ )<br>銆銆{<br>銆銆wIdx = X[ roundIdx ][ 0 ];<br>銆銆sIdx = 0;<br>銆銆for ( i = 0; i < 16; i++ )<br>銆銆{<br>銆銆// FF, GG, HH, and II transformations for rounds 1, 2, 3, and 4.<br>銆銆// Rotation is separate from addition to prevent recomputation.<br>銆銆state[sIdx] = state [ (sIdx + 1) % 4 ] + <br>銆銆rotate_left ( state[sIdx] +<br>銆銆( *auxi[ roundIdx ] )<br>銆銆( state[(sIdx+1) % 4], state[(sIdx+2) % 4], state[(sIdx+3) % 4]) +<br>銆銆w[ wIdx ] +<br>銆銆(UINT32)floor( (1ULL << 32) * fabs(sin( roundIdx * 16 + i + 1 )) ),<br>銆銆S[ roundIdx ][ i % 4 ]);<br>銆銆sIdx = ( sIdx + 3 ) % 4;<br>銆銆wIdx = ( wIdx + X[ roundIdx ][ 1 ] ) & 0xF;<br>銆銆}<br>銆銆}<br>銆銆chain[ 0 ] += state[ 0 ];<br>銆銆chain[ 1 ] += state[ 1 ];<br>銆銆chain[ 2 ] += state[ 2 ];<br>銆銆chain[ 3 ] += state[ 3 ];<br>銆銆}<br>銆銆memmove ( r + 0, (char *)&chain[0], sizeof(UINT32) );<br>銆銆memmove ( r + 4, (char *)&chain[1], sizeof(UINT32) );<br>銆銆memmove ( r + 8, (char *)&chain[2], sizeof(UINT32) );<br>銆銆memmove ( r + 12, (char *)&chain[3], sizeof(UINT32) );<br>銆銆for ( i = 0; i < 16; i++ )<br>銆銆printf ( "%02x", r[i] );<br>銆銆putchar ( '\n' );<br>銆銆}<br>銆銆return EXIT_SUCCESS;<br>銆銆}<br>銆銆/* 浠ヤ笂紼嬪簭鍙互鍦ㄤ換鎰忎竴嬈炬敮鎸丄NSI C鐨勭紪璇戝櫒涓婄紪璇戦氳繃 */ <img src ="http://www.shnenglu.com/prayer/aggbug/129210.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/prayer/" target="_blank">Prayer</a> 2010-10-09 16:44 <a href="http://www.shnenglu.com/prayer/archive/2010/10/09/129210.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍏蜂綋鐨勪竴涓狹D5瀹炵幇http://www.shnenglu.com/prayer/archive/2010/10/09/129209.htmlPrayerPrayerSat, 09 Oct 2010 08:43:00 GMThttp://www.shnenglu.com/prayer/archive/2010/10/09/129209.htmlhttp://www.shnenglu.com/prayer/comments/129209.htmlhttp://www.shnenglu.com/prayer/archive/2010/10/09/129209.html#Feedback0http://www.shnenglu.com/prayer/comments/commentRss/129209.htmlhttp://www.shnenglu.com/prayer/services/trackbacks/129209.html鍏蜂綋鐨勪竴涓狹D5瀹炵幇

=============================澶存枃浠禨ecurity.h===============================================



// 涓嬪垪 ifdef 鍧楁槸鍒涘緩浣夸粠 DLL 瀵煎嚭鏇寸畝鍗曠殑
// 瀹忕殑鏍囧噯鏂規硶銆傛 DLL 涓殑鎵鏈夋枃浠墮兘鏄敤鍛戒護琛屼笂瀹氫箟鐨?SECURITY_EXPORTS
// 絎﹀彿緙栬瘧鐨勩傚湪浣跨敤姝?DLL 鐨?br>// 浠諱綍鍏朵粬欏圭洰涓婁笉搴斿畾涔夋絎﹀彿銆傝繖鏍鳳紝婧愭枃浠朵腑鍖呭惈姝ゆ枃浠剁殑浠諱綍鍏朵粬欏圭洰閮戒細灝?br>// SECURITY_API 鍑芥暟瑙嗕負鏄粠姝?DLL 瀵煎叆鐨勶紝鑰屾 DLL 鍒欏皢鐢ㄦ瀹忓畾涔夌殑
// 絎﹀彿瑙嗕負鏄瀵煎嚭鐨勩?br>
//鍦ㄤ嬌鐢ㄨ綾葷殑鍦版柟鍖呭惈鏈枃浠跺嵆鍙?br>#ifdef SECURITY_EXPORTS
#define SECURITY_API __declspec(dllexport)
#else
#define SECURITY_API __declspec(dllimport)
#endif


typedef unsigned char *POINTER;


typedef unsigned short int UINT2;


typedef unsigned long int UINT4;

#define PROTO_LIST(list) list


typedef struct _MD5_CTX
{
UINT4 state[4];
UINT4 count[2];
unsigned char buffer[64];
} MD5_CTX;

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
};

#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 21


#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)))


#define ROTATE_LEFT(x, n) (((x) << (n)) | ((x) >> (32-(n))))


#define FF(a, b, c, d, x, s, ac) { (a) += F ((b), (c), (d)) + (x) + (UINT4)(ac);(a) = ROTATE_LEFT ((a), (s)); (a) += (b); }
#define GG(a, b, c, d, x, s, ac) { (a) += G ((b), (c), (d)) + (x) + (UINT4)(ac); (a) = ROTATE_LEFT ((a), (s)); (a) += (b); }
#define HH(a, b, c, d, x, s, ac) {  (a) += H ((b), (c), (d)) + (x) + (UINT4)(ac); (a) = ROTATE_LEFT ((a), (s)); (a) += (b); }
#define II(a, b, c, d, x, s, ac) { (a) += I ((b), (c), (d)) + (x) + (UINT4)(ac); (a) = ROTATE_LEFT ((a), (s)); (a) += (b); }

#define TEST_BLOCK_LEN 1000
#define TEST_BLOCK_COUNT 1000

// 姝ょ被鏄粠 Security.dll 瀵煎嚭鐨?br>class SECURITY_API CSecurity
{
public:
CSecurity(void);
void CSecurity::MD5( const char *string ,char *lpMD5StringBuffer ) ;
private:
  void MD5Transform PROTO_LIST ((UINT4 [4], unsigned char [64]));
  void MD5_memcpy PROTO_LIST ((POINTER, POINTER, size_t));
  void MD5_memset PROTO_LIST ((POINTER, int, size_t));
  void MD5Init PROTO_LIST ((MD5_CTX *));
  void MD5Update PROTO_LIST ((MD5_CTX *, unsigned char *, size_t));
  void MD5Final PROTO_LIST ((unsigned char [16], MD5_CTX *));
  void MDTimeTrial PROTO_LIST ((void));
  void StringAddOne PROTO_LIST ((char *));
  void Encode PROTO_LIST ((unsigned char *, UINT4 *, size_t));
  void Decode PROTO_LIST ((UINT4 *, unsigned char *, size_t));
};
===============================Security.cpp====================================================

// Security.cpp : 瀹氫箟 DLL 搴旂敤紼嬪簭鐨勫叆鍙g偣銆?br>//

#include "stdafx.h"

#include
#include
#include
#include
#include

#include "Security.h"

BOOL APIENTRY DllMain( HANDLE hModule,
       DWORD  ul_reason_for_call,
       LPVOID lpReserved
       )
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
  break;
}
    return TRUE;
}


// 榪欐槸宸插鍑虹被鐨勬瀯閫犲嚱鏁般?br>// 鏈夊叧綾誨畾涔夌殑淇℃伅錛岃鍙傞槄 Security.h
CSecurity::CSecurity()
{
return;
}



void CSecurity::MD5Init( MD5_CTX *context )
{
context->count[0] = context->count[1] = 0;

context->state[0] = 0x67452301;
context->state[1] = 0xefcdab89;
context->state[2] = 0x98badcfe;
context->state[3] = 0x10325476;
}


void CSecurity::MD5Update(
       MD5_CTX *context,
       unsigned char *input,
       size_t inputLen
       )
{
size_t i, index, partLen;


index = (size_t)((context->count[0] >> 3) & 0x3F);


if ((context->count[0] += ((UINT4)inputLen << 3))
  < ((UINT4)inputLen << 3))
  context->count[1]++;
context->count[1] += ((UINT4)inputLen >> 29);

partLen = 64 - index;


if (inputLen >= partLen) {
  MD5_memcpy
   ((POINTER)&context->buffer[index], (POINTER)input, partLen);
  MD5Transform (context->state, context->buffer);
  
  for (i = partLen; i + 63 < inputLen; i += 64)
   MD5Transform (context->state, &input);
  
  index = 0;
}
else
  i = 0;


MD5_memcpy
  ((POINTER)&context->buffer[index], (POINTER)&input,
  inputLen-i);
}


void CSecurity::MD5Final(
      unsigned char digest[16],
      MD5_CTX *context
      )
{
unsigned char bits[8];
size_t index, padLen;


Encode (bits, context->count, 8);


index = (size_t)((context->count[0] >> 3) & 0x3f);
padLen = (index < 56) ? (56 - index) : (120 - index);
MD5Update (context, PADDING, padLen);


MD5Update (context, bits, 8);


Encode (digest, context->state, 16);


MD5_memset ((POINTER)context, 0, sizeof (*context));
}


void CSecurity::MD5Transform(
       UINT4 state[4],
       unsigned char block[64]
       )
{
UINT4 a = state[0], b = state[1], c = state[2], d = state[3], x[16];

Decode (x, block, 64);


FF (a, b, c, d, x[ 0], S11, 0xd76aa478);
FF (d, a, b, c, x[ 1], S12, 0xe8c7b756);
FF (c, d, a, b, x[ 2], S13, 0x242070db);
FF (b, c, d, a, x[ 3], S14, 0xc1bdceee);
FF (a, b, c, d, x[ 4], S11, 0xf57c0faf);
FF (d, a, b, c, x[ 5], S12, 0x4787c62a);
FF (c, d, a, b, x[ 6], S13, 0xa8304613);
FF (b, c, d, a, x[ 7], S14, 0xfd469501);
FF (a, b, c, d, x[ 8], S11, 0x698098d8);
FF (d, a, b, c, x[ 9], S12, 0x8b44f7af);
FF (c, d, a, b, x[10], S13, 0xffff5bb1);
FF (b, c, d, a, x[11], S14, 0x895cd7be);
FF (a, b, c, d, x[12], S11, 0x6b901122);
FF (d, a, b, c, x[13], S12, 0xfd987193);
FF (c, d, a, b, x[14], S13, 0xa679438e);
FF (b, c, d, a, x[15], S14, 0x49b40821);


GG (a, b, c, d, x[ 1], S21, 0xf61e2562);
GG (d, a, b, c, x[ 6], S22, 0xc040b340);
GG (c, d, a, b, x[11], S23, 0x265e5a51);
GG (b, c, d, a, x[ 0], S24, 0xe9b6c7aa);
GG (a, b, c, d, x[ 5], S21, 0xd62f105d);
GG (d, a, b, c, x[10], S22, 0x2441453);
GG (c, d, a, b, x[15], S23, 0xd8a1e681);
GG (b, c, d, a, x[ 4], S24, 0xe7d3fbc8);
GG (a, b, c, d, x[ 9], S21, 0x21e1cde6);
GG (d, a, b, c, x[14], S22, 0xc33707d6);
GG (c, d, a, b, x[ 3], S23, 0xf4d50d87);
GG (b, c, d, a, x[ 8], S24, 0x455a14ed);
GG (a, b, c, d, x[13], S21, 0xa9e3e905);
GG (d, a, b, c, x[ 2], S22, 0xfcefa3f8);
GG (c, d, a, b, x[ 7], S23, 0x676f02d9);
GG (b, c, d, a, x[12], S24, 0x8d2a4c8a);


HH (a, b, c, d, x[ 5], S31, 0xfffa3942);
HH (d, a, b, c, x[ 8], S32, 0x8771f681);
HH (c, d, a, b, x[11], S33, 0x6d9d6122);
HH (b, c, d, a, x[14], S34, 0xfde5380c);
HH (a, b, c, d, x[ 1], S31, 0xa4beea44);
HH (d, a, b, c, x[ 4], S32, 0x4bdecfa9);
HH (c, d, a, b, x[ 7], S33, 0xf6bb4b60);
HH (b, c, d, a, x[10], S34, 0xbebfbc70);
HH (a, b, c, d, x[13], S31, 0x289b7ec6);
HH (d, a, b, c, x[ 0], S32, 0xeaa127fa);
HH (c, d, a, b, x[ 3], S33, 0xd4ef3085);
HH (b, c, d, a, x[ 6], S34, 0x4881d05);
HH (a, b, c, d, x[ 9], S31, 0xd9d4d039);
HH (d, a, b, c, x[12], S32, 0xe6db99e5);
HH (c, d, a, b, x[15], S33, 0x1fa27cf8);
HH (b, c, d, a, x[ 2], S34, 0xc4ac5665);


II (a, b, c, d, x[ 0], S41, 0xf4292244);
II (d, a, b, c, x[ 7], S42, 0x432aff97);
II (c, d, a, b, x[14], S43, 0xab9423a7);
II (b, c, d, a, x[ 5], S44, 0xfc93a039);
II (a, b, c, d, x[12], S41, 0x655b59c3);
II (d, a, b, c, x[ 3], S42, 0x8f0ccc92);
II (c, d, a, b, x[10], S43, 0xffeff47d);
II (b, c, d, a, x[ 1], S44, 0x85845dd1);
II (a, b, c, d, x[ 8], S41, 0x6fa87e4f);
II (d, a, b, c, x[15], S42, 0xfe2ce6e0);
II (c, d, a, b, x[ 6], S43, 0xa3014314);
II (b, c, d, a, x[13], S44, 0x4e0811a1);
II (a, b, c, d, x[ 4], S41, 0xf7537e82);
II (d, a, b, c, x[11], S42, 0xbd3af235);
II (c, d, a, b, x[ 2], S43, 0x2ad7d2bb);
II (b, c, d, a, x[ 9], S44, 0xeb86d391);

state[0] += a;
state[1] += b;
state[2] += c;
state[3] += d;


MD5_memset ((POINTER)x, 0, sizeof (x));
}


void CSecurity::Encode(
       unsigned char *output,
       UINT4 *input,
       size_t len
       )
{
size_t i, j;

for (i = 0, j = 0; j < len; i++, j += 4) {
  output[j] = (unsigned char)(input & 0xff);
  output[j+1] = (unsigned char)((input >> 8) & 0xff);
  output[j+2] = (unsigned char)((input >> 16) & 0xff);
  output[j+3] = (unsigned char)((input >> 24) & 0xff);
}
}


void CSecurity::Decode(
       UINT4 *output,
       unsigned char *input,
       size_t len
       )
{
size_t i, j;

for (i = 0, j = 0; j < len; i++, j += 4)
  output = ((UINT4)input[j]) | (((UINT4)input[j+1]) << 8) |
  (((UINT4)input[j+2]) << 16) | (((UINT4)input[j+3]) << 24);
}


void CSecurity::MD5_memcpy(
        POINTER output,
        POINTER input,
        size_t len
        )
{
size_t i;

for (i = 0; i < len; i++)
  output = input;
}


void CSecurity::MD5_memset(
        POINTER output,
        int value,
        size_t len
        )
{
size_t i;

for (i = 0; i < len; i++)
  ((char *)output) = (char)value;
}


void CSecurity::MD5( const char *string ,char *lpMD5StringBuffer )
{
MD5_CTX context;
unsigned char digest[16];

static char output[33]={""};
size_t len = strlen (string);
int i;

MD5Init( &context);
MD5Update( &context, (unsigned char*)string, len );
MD5Final( digest, &context );

for (i = 0; i < 16; i++)
{
  sprintf(&(lpMD5StringBuffer[2*i]),"%02x",(unsigned char)digest);
  sprintf(&(lpMD5StringBuffer[2*i+1]),"%02x",(unsigned char)(digest<<4));
}
for(i=0;i<32;i++)
{
  output=lpMD5StringBuffer;
}
}


void CSecurity::StringAddOne( char * orstring )
{
size_t len;
size_t i,n;

len = strlen(orstring);
n = len - 1;
for(i = n; i >= 0; i--)
{
  if(orstring=='9')
  {
   orstring = 'A';
   break;
  }
  else if(orstring=='Z')
  {
   orstring='a';
   break;
  }
  else if(orstring=='z')
  {
   orstring='0';
   continue;
  }
  else
   orstring += 1;
  break;
}
}
=============================stdafx.h=====================================
// stdafx.h : 鏍囧噯緋葷粺鍖呭惈鏂囦歡鐨勫寘鍚枃浠訛紝
// 鎴栨槸甯哥敤浣嗕笉甯告洿鏀圭殑欏圭洰鐗瑰畾鐨勫寘鍚枃浠?br>//

#pragma once

//瀵煎嚭
#define SECURITY_EXPORTS

#define WIN32_LEAN_AND_MEAN  // 浠?Windows 澶翠腑鎺掗櫎鏋佸皯浣跨敤鐨勮祫鏂?br>// Windows 澶存枃浠?
#include

// TODO: 鍦ㄦ澶勫紩鐢ㄧ▼搴忚姹傜殑闄勫姞澶存枃浠?br>============================stdafx.cpp========================================

// stdafx.cpp : 鍙寘鎷爣鍑嗗寘鍚枃浠剁殑婧愭枃浠?br>// Security.pch 灝嗘垚涓洪緙栬瘧澶?br>// stdafx.obj 灝嗗寘鍚緙栬瘧綾誨瀷淇℃伅

#include "stdafx.h"

// TODO: 鍦?STDAFX.H 涓?br>//寮曠敤浠諱綍鎵闇鐨勯檮鍔犲ご鏂囦歡錛岃屼笉鏄湪姝ゆ枃浠朵腑寮曠敤
=====================================================================

浠ヤ笂紼嬪簭浣跨敤鍛戒護錛欯cl /GD /LD Security.cpp stdafx.cpp 緙栬瘧鍗沖彲




Prayer 2010-10-09 16:43 鍙戣〃璇勮
]]>
winmd5http://www.shnenglu.com/prayer/archive/2010/10/09/129206.htmlPrayerPrayerSat, 09 Oct 2010 08:34:00 GMThttp://www.shnenglu.com/prayer/archive/2010/10/09/129206.htmlhttp://www.shnenglu.com/prayer/comments/129206.htmlhttp://www.shnenglu.com/prayer/archive/2010/10/09/129206.html#Feedback0http://www.shnenglu.com/prayer/comments/commentRss/129206.htmlhttp://www.shnenglu.com/prayer/services/trackbacks/129206.htmlMD5鐨勫叏縐版槸Message-Digest Algorithm 5錛屽湪90騫翠唬鍒濈敱MIT鐨勮綆楁満縐戝瀹為獙瀹ゅ拰RSA Data Security Inc鍙戞槑錛岀粡MD2銆丮D3鍜孧D4鍙戝睍鑰屾潵銆?MD5灝嗕換鎰忛暱搴︾殑“瀛楄妭涓?#8221;鍙樻崲鎴愪竴涓?28bit鐨勫ぇ鏁存暟錛屽茍涓斿畠鏄竴涓笉鍙嗙殑瀛楃涓插彉鎹㈢畻娉曪紝鎹㈠彞璇濊灝辨槸錛屽嵆浣夸綘鐪嬪埌婧愮▼搴忓拰綆楁硶鎻忚堪錛屼篃鏃犳硶灝嗕竴涓狹D5鐨勫煎彉鎹㈠洖鍘熷鐨勫瓧絎︿覆錛屼粠鏁板鍘熺悊涓婅錛屾槸鍥犱負鍘熷鐨勫瓧絎︿覆鏈夋棤絀峰涓紝榪欐湁鐐硅薄涓嶅瓨鍦ㄥ弽鍑芥暟鐨勬暟瀛﹀嚱鏁般?/p>
綆浠嬨銆WinMD5 MD5綆浠?
銆銆Message-Digest娉涙寚瀛楄妭涓?Message)鐨凥ash鍙樻崲錛屽氨鏄妸涓涓換鎰忛暱搴︾殑瀛楄妭涓插彉鎹㈡垚涓瀹氶暱鐨勫ぇ鏁存暟銆傝娉ㄦ剰鎴戜嬌鐢ㄤ簡“瀛楄妭涓?#8221;鑰屼笉鏄?#8220;瀛楃涓?#8221;榪欎釜璇嶏紝鏄洜涓鴻繖縐嶅彉鎹㈠彧涓庡瓧鑺傜殑鍊兼湁鍏籌紝涓庡瓧絎﹂泦鎴栫紪鐮佹柟寮忔棤鍏熾?

鍏蜂綋姝ラ

琛ヤ綅

銆銆MD5綆楁硶鍏堝杈撳叆鐨勬暟鎹繘琛岃ˉ浣嶏紝浣垮緱鏁版嵁浣嶉暱搴EN瀵?12姹備綑鐨勭粨鏋滄槸448銆傚嵆鏁版嵁鎵╁睍鑷矺*512+448浣嶃傚嵆K*64+56涓瓧鑺傦紝K涓烘暣鏁般?
銆銆鍏蜂綋琛ヤ綅鎿嶄綔錛氳ˉ涓涓?錛岀劧鍚庤ˉ0鑷蟲弧瓚充笂榪拌姹傘?

琛ユ暟鎹暱搴?/h3> 銆銆鐢ㄤ竴涓?4浣嶇殑鏁板瓧琛ㄧず鏁版嵁鐨勫師濮嬮暱搴錛屾妸B鐢ㄤ袱涓?2浣嶆暟琛ㄧず銆傝繖鏃訛紝鏁版嵁灝辮濉ˉ鎴愰暱搴︿負512浣嶇殑鍊嶆暟銆?

鍒濆鍖朚D5鍙傛暟

銆銆鍥涗釜32浣嶆暣鏁?(A,B,C,D) 鐢ㄦ潵璁$畻淇℃伅鎽樿錛屽垵濮嬪寲浣跨敤鐨勬槸鍗佸叚榪涘埗琛ㄧず鐨勬暟瀛?
銆銆A=0X01234567
銆銆B=0X89abcdef
銆銆C=0Xfedcba98
銆銆D=0X76543210

澶勭悊浣嶆搷浣滃嚱鏁?/h3> 銆銆X錛孻錛孼涓?2浣嶆暣鏁般?
銆銆F(X,Y,Z) = X&Y|NOT(X)&Z
銆銆G(X,Y,Z) = X&Z|Y?(Z)
銆銆H(X,Y,Z) = X xor Y xor Z
銆銆I(X,Y,Z) = Y xor (X|not(Z))

涓昏鍙樻崲榪囩▼

銆銆浣跨敤甯告暟緇凾[1 ... 64]錛?T涓?2浣嶆暣鏁扮敤16榪涘埗琛ㄧず錛屾暟鎹敤16涓?2浣嶇殑鏁存暟鏁扮粍M[]琛ㄧず銆?
銆銆鍏蜂綋榪囩▼濡備笅錛?
銆銆/* 澶勭悊鏁版嵁鍘熸枃 */
銆銆For i = 0 to N/16-1 do
銆銆/*姣忎竴嬈★紝鎶婃暟鎹師鏂囧瓨鏀懼湪16涓厓绱犵殑鏁扮粍X涓? */
銆銆For j = 0 to 15 do
銆銆Set X[j] to M[i*16+j].
銆銆end /緇撴潫瀵笿鐨勫驚鐜?
銆銆/* Save A as AA, B as BB, C as CC, and D as DD.*/
銆銆AA = A
銆銆BB = B
銆銆CC = C
銆銆DD = D
銆銆/* 絎?杞?/
銆銆/* 浠?[abcd k s i]琛ㄧず濡備笅鎿嶄綔 a = b + ((a + F(b,c,d) + X[k] + T) <<< s). */
銆銆/* Do the following 16 operations. */
銆銆[ABCD 0 7 1] [DABC 1 12 2] [CDAB 2 17 3] [BCDA 322 4]
銆銆[ABCD 4 7 5] [DABC 5 12 6] [CDAB 6 17 7] [BCDA 722 8]
銆銆[ABCD 8 7 9] [DABC 9 12 10] [CDAB 10 17 11] [BCDA11 22 12]
銆銆[ABCD 12 7 13] [DABC 13 12 14] [CDAB 14 17 15] [BCDA 15 22 16]
銆銆/* 絎?杞? */
銆銆/* 浠?[abcd k s i]琛ㄧず濡備笅鎿嶄綔 a = b + ((a + G(b,c,d) + X[k] + T) <<< s). */
銆銆/* Do the following 16 operations. */
銆銆[ABCD 1 5 17] [DABC 6 9 18] [CDAB 11 14 19] [BCDA0 20 20]
銆銆[ABCD 5 5 21] [DABC 10 9 22] [CDAB 15 14 23] [BCDA 4 20 24]
銆銆[ABCD 9 5 25] [DABC 14 9 26] [CDAB 3 14 27] [BCDA8 20 28]
銆銆[ABCD 13 5 29] [DABC 2 9 30] [CDAB 7 14 31] [BCDA12 20 32]
銆銆/* 絎?杞?/
銆銆/* 浠?[abcd k s i]琛ㄧず濡備笅鎿嶄綔 a = b + ((a + H(b,c,d) + X[k] + T) <<< s). */
銆銆/* Do the following 16 operations. */
銆銆[ABCD 5 4 33] [DABC 8 11 34] [CDAB 11 16 35] [BCDA 14 23 36]
銆銆[ABCD 1 4 37] [DABC 4 11 38] [CDAB 7 16 39] [BCDA10 23 40]
銆銆[ABCD 13 4 41] [DABC 0 11 42] [CDAB 3 16 43] [BCDA 6 23 44]
銆銆[ABCD 9 4 45] [DABC 12 11 46] [CDAB 15 16 47] [BCDA 2 23 48]
銆銆/* 絎?杞?/
銆銆/* 浠?[abcd k s i]琛ㄧず濡備笅鎿嶄綔 a = b + ((a + I(b,c,d) + X[k] + T) <<< s). */
銆銆/* Do the following 16 operations. */
銆銆[ABCD 0 6 49] [DABC 7 10 50] [CDAB 14 15 51] [BCDA 5 21 52]
銆銆[ABCD 12 6 53] [DABC 3 10 54] [CDAB 10 15 55] [BCDA 1 21 56]
銆銆[ABCD 8 6 57] [DABC 15 10 58] [CDAB 6 15 59] [BCDA 13 21 60]
銆銆[ABCD 4 6 61] [DABC 11 10 62] [CDAB 2 15 63] [BCDA 9 21 64]

杈撳嚭緇撴灉

銆銆/* 鐒跺悗榪涜濡備笅鎿嶄綔錛岃緭鍑虹粨鏋?*/
銆銆A = A + AA
銆銆B = B + BB
銆銆C = C + CC
銆銆D = D + DD
銆銆end /* 緇撴潫瀵笽鐨勫驚鐜?/
銆銆杈撳嚭緇撴灉

搴旂敤

鏁板瓧絳懼悕

銆銆MD5鐨勫吀鍨嬪簲鐢ㄦ槸瀵逛竴孌礛essage(瀛楄妭涓?浜х敓fingerprint(鎸囩汗)錛屼互闃叉琚?#8220;綃℃敼”銆備婦涓緥瀛愶紝浣犲皢涓孌佃瘽鍐欏湪涓涓彨 readme.txt鏂囦歡涓紝騫跺榪欎釜readme.txt浜х敓涓涓狹D5鐨勫煎茍璁板綍鍦ㄦ錛岀劧鍚庝綘鍙互浼犳挱榪欎釜鏂囦歡緇欏埆浜猴紝鍒漢濡傛灉淇敼浜嗘枃浠朵腑鐨勪換浣曞唴瀹癸紝浣犲榪欎釜鏂囦歡閲嶆柊璁$畻MD5鏃跺氨浼氬彂鐜般傚鏋滃啀鏈変竴涓涓夋柟鐨勮璇佹満鏋勶紝鐢∕D5榪樺彲浠ラ槻姝㈡枃浠朵綔鑰呯殑“鎶佃禆”錛岃繖灝辨槸鎵璋撶殑鏁板瓧絳懼悕搴旂敤銆?

鍔犲瘑鍜岃В瀵?/h3> 銆銆MD5榪樺箍娉涚敤浜庡姞瀵嗗拰瑙e瘑鎶鏈笂錛屽湪寰堝鎿嶄綔緋葷粺涓紝鐢ㄦ埛鐨勫瘑鐮佹槸浠D5鍊鹼紙鎴栫被浼肩殑鍏跺畠綆楁硶錛夌殑鏂瑰紡淇濆瓨鐨勶紝 鐢ㄦ埛Login鐨勬椂鍊欙紝緋葷粺鏄妸鐢ㄦ埛杈撳叆鐨勫瘑鐮佽綆楁垚MD5鍊鹼紝鐒跺悗鍐嶅幓鍜岀郴緇熶腑淇濆瓨鐨凪D5鍊艱繘琛屾瘮杈冿紝鑰岀郴緇熷茍涓?#8220;鐭ラ亾”鐢ㄦ埛鐨勫瘑鐮佹槸浠涔堛?
銆銆涓浜涢粦瀹㈢牬鑾瘋繖縐嶅瘑鐮佺殑鏂規硶鏄竴縐嶈縐頒負“璺戝瓧鍏?#8221;鐨勬柟娉曘傛湁涓ょ鏂規硶寰楀埌瀛楀吀錛屼竴縐嶆槸鏃ュ父鎼滈泦鐨勭敤鍋氬瘑鐮佺殑瀛楃涓茶〃錛屽彟涓縐嶆槸鐢ㄦ帓鍒楃粍鍚堟柟娉曠敓鎴愮殑錛屽厛鐢∕D5紼嬪簭璁$畻鍑鴻繖浜涘瓧鍏擱」鐨凪D5鍊鹼紝鐒跺悗鍐嶇敤鐩爣鐨凪D5鍊煎湪榪欎釜瀛楀吀涓绱€?
銆銆鍗充嬌鍋囪瀵嗙爜鐨勬渶澶ч暱搴︿負8錛屽悓鏃跺瘑鐮佸彧鑳芥槸瀛楁瘝鍜屾暟瀛楋紝鍏?6+26+10=62涓瓧絎︼紝鎺掑垪緇勫悎鍑虹殑瀛楀吀鐨勯」鏁板垯鏄疨(62,1)+P (62,2)….+P(62,8)錛岄偅涔熷凡緇忔槸涓涓緢澶╂枃鐨勬暟瀛椾簡錛屽瓨鍌ㄨ繖涓瓧鍏稿氨闇瑕乀B綰х殑紓佺洏緇勶紝鑰屼笖榪欑鏂規硶榪樻湁涓涓墠鎻愶紝灝辨槸鑳借幏寰楃洰鏍囪處鎴風殑瀵嗙爜MD5鍊肩殑鎯呭喌涓嬫墠鍙互銆?
銆銆鍦ㄥ緢澶氱數瀛愬晢鍔″拰紺懼尯搴旂敤涓紝綆$悊鐢ㄦ埛鐨凙ccount鏄竴縐嶆渶甯哥敤鐨勫熀鏈姛鑳斤紝灝界寰堝 Application Server鎻愪緵浜嗚繖浜涘熀鏈粍浠訛紝浣嗗緢澶氬簲鐢ㄥ紑鍙戣呬負浜嗙鐞嗙殑鏇村ぇ鐨勭伒媧繪ц繕鏄枩嬈㈤噰鐢ㄥ叧緋繪暟鎹簱鏉ョ鐞嗙敤鎴鳳紝鎳掓儼鐨勫仛娉曟槸鐢ㄦ埛鐨勫瘑鐮佸線寰浣跨敤鏄庢枃鎴栫畝鍗曠殑鍙樻崲鍚庣洿鎺ヤ繚瀛樺湪鏁版嵁搴撲腑錛屽洜姝よ繖浜涚敤鎴風殑瀵嗙爜瀵硅蔣浠跺紑鍙戣呮垨緋葷粺綆$悊鍛樻潵璇村彲浠ヨ姣棤淇濆瘑鍙█銆?

Prayer 2010-10-09 16:34 鍙戣〃璇勮
]]>璇磋寮傛垨榪愮畻^鍜屼粬鐨勪竴涓父鐢ㄤ綔鐢?/title><link>http://www.shnenglu.com/prayer/archive/2009/12/23/103789.html</link><dc:creator>Prayer</dc:creator><author>Prayer</author><pubDate>Wed, 23 Dec 2009 06:40:00 GMT</pubDate><guid>http://www.shnenglu.com/prayer/archive/2009/12/23/103789.html</guid><wfw:comment>http://www.shnenglu.com/prayer/comments/103789.html</wfw:comment><comments>http://www.shnenglu.com/prayer/archive/2009/12/23/103789.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/prayer/comments/commentRss/103789.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/prayer/services/trackbacks/103789.html</trackback:ping><description><![CDATA[<p>涓句緥</p> <p>鍋囧鏈変袱涓糀鍜孊,灝咥鍜孊寮傛垨榪愮畻鐨勬楠ゅ涓?<br>1.鍏堝皢B鍙栧弽,鍐嶅拰A榪涜"涓?榪愮畻,寰楀埌B'<br>2.鍐嶅皢A鍙栧弽,鍚庡拰B榪涜"涓?榪愮畻,寰楀埌A'<br>3.鏈鍚庡皢B' 鍜?A' 榪涜"鎴?榪愮畻,灝辨槸鏈緇堢殑緇撴灉浜?</p> <p>鍥涘瓧:鍚屽亣寮傜湡</p> <p>鐪焇鍋?鐪?br>鍋嘵鐪?鐪?br>鍋嘵鍋?鍋?br>鐪焇鐪?鍋?/p> <p>寮傛垨鐨勮繍綆楁柟娉曟槸涓涓簩榪涘埗榪愮畻錛?br>1^1=0<br>0^0=0<br>1^0=1<br>0^1=1<br><br>涓よ呯浉絳変負0,涓嶇瓑涓?.<br><br><strong>榪欐牱鎴戜滑鍙戠幇浜ゆ崲涓や釜鏁存暟鐨勫兼椂鍙互涓嶇敤絎笁涓弬鏁般?br>濡俛=11,b=9.浠ヤ笅鏄簩榪涘埗<br>a=a^b=1011^1001=0010;<br>b=b^a=1001^0010=1011;<br>a=a^b=0010^1011=1001;<br>榪欐牱涓鏉=9,b=13浜嗐?/strong><br><br><br>涓句竴涓繍鐢紝 鎸変竴涓寜閽氦鎹袱涓猰c鐨勪綅緗彲浠ヨ繖鏍楓?br><br>mybt.onPress=function()<br>{<br>   mc1._x=mc1._x^mc2._x;<br>   mc2._x=mc2._x^mc1._x;<br>   mc1._x=mc1._x^mc2._x;<br>//<br>   mc1._y=mc1._y^mc2._y; <br>   mc2._y=mc2._y^mc1._y;<br>   mc1._y=mc1._y^mc2._y;<br>}<br><br>榪欐牱灝卞彲浠ヤ笉閫氳繃鐩戞椂鍙橀噺鏉ヤ紶閫掍簡銆?br><br><strong>鏈鍚庤澹版槑錛氬彧鑳界敤浜庢暣鏁般?/strong></p> <img src ="http://www.shnenglu.com/prayer/aggbug/103789.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/prayer/" target="_blank">Prayer</a> 2009-12-23 14:40 <a href="http://www.shnenglu.com/prayer/archive/2009/12/23/103789.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>MD5鏍¢獙鐮佹槸騫插悧鐢ㄧ殑http://www.shnenglu.com/prayer/archive/2009/12/07/102716.htmlPrayerPrayerMon, 07 Dec 2009 06:13:00 GMThttp://www.shnenglu.com/prayer/archive/2009/12/07/102716.htmlhttp://www.shnenglu.com/prayer/comments/102716.htmlhttp://www.shnenglu.com/prayer/archive/2009/12/07/102716.html#Feedback0http://www.shnenglu.com/prayer/comments/commentRss/102716.htmlhttp://www.shnenglu.com/prayer/services/trackbacks/102716.html


MD5鏄痬essage-digest algorithm 5錛堜俊鎭?鎽樿綆楁硶錛夌殑緙╁啓錛岃騫挎硾鐢ㄤ簬鍔犲瘑鍜岃В瀵嗘妧鏈笂錛屽畠鍙互璇存槸鏂囦歡鐨?#8220;鏁板瓧鎸囩汗”銆備換浣曚竴涓枃浠訛紝鏃犺鏄彲鎵ц紼嬪簭銆佸浘鍍忔枃浠躲佷復鏃舵枃浠舵垨鑰呭叾浠栦換浣曠被鍨嬬殑鏂囦歡錛屼篃涓嶇瀹冧綋縐澶э紝閮芥湁涓斿彧鏈変竴涓嫭涓鏃犱簩鐨凪D5淇℃伅鍊鹼紝騫朵笖濡傛灉榪欎釜鏂囦歡琚慨鏀硅繃錛屽畠鐨凪D5鍊間篃灝嗛殢涔嬫敼鍙樸傚洜姝わ紝鎴戜滑鍙互閫氳繃瀵規瘮鍚屼竴鏂囦歡鐨凪D5鍊鹼紝鏉ユ牎楠岃繖涓枃浠舵槸鍚﹁“綃℃敼”榪囥?

MD5鍒板簳鏈変粈涔堢敤

褰撴垜浠笅杞戒簡濡傚浘1鎵紺轟箣綾葷殑鏂囦歡鍚庯紝濡傛灉鎯崇煡閬撲笅杞界殑榪欎釜鏂囦歡鍜岀綉绔欑殑鍘熷鏂囦歡鏄惁涓妯′竴鏍鳳紝灝卞彲浠ョ粰鑷繁涓嬭澆鐨勬枃浠跺仛涓狹D5鏍¢獙銆傚鏋滃緱鍒扮殑MD5鍊煎拰緗戠珯鍏竷鐨勭浉鍚岋紝鍙‘璁ゆ墍涓嬭澆鐨勬枃浠舵槸瀹屾暣鐨勩傚鏈変笉鍚岋紝璇存槑浣犱笅杞界殑鏂囦歡鏄笉瀹屾暣鐨勶細瑕佷箞灝辨槸鍦ㄧ綉緇滀笅杞界殑榪囩▼涓嚭鐜伴敊璇紝瑕佷箞灝辨槸姝ゆ枃浠跺凡琚埆浜轟慨鏀廣備負闃叉浠栦漢鏇存敼璇ユ枃浠舵椂鏀懼叆鐥呮瘨錛屾渶濂戒笉瑕佷嬌鐢ㄣ?

褰撴垜浠敤E-mail緇欏ソ鍙嬪彂閫佹枃浠舵椂錛屽彲浠ュ皢瑕佸彂閫佹枃浠剁殑MD5鍊煎憡璇夊鏂癸紝榪欐牱濂藉弸鏀跺埌璇ユ枃浠朵互鍚庡嵆鍙鍏惰繘琛屾牎楠岋紝鏉ョ‘瀹氭枃浠舵槸鍚﹀畨鍏ㄣ?

鍐嶆瘮濡傦細鍦ㄥ垰瀹夎濂界郴緇熷悗鍙互緇欑郴緇熸枃浠跺仛涓狹D5鏍¢獙錛岃繃浜嗕竴孌墊椂闂村悗濡傛灉浣犳鐤戞煇浜涙枃浠惰浜烘崲鎺夛紝閭d箞灝卞彲浠ョ粰閭d簺琚鐤戠殑鏂囦歡鍋氫釜MD5鏍¢獙錛岃嫢鍜屼粠鍓嶅緱鍒扮殑MD5鏍¢獙鐮佷笉涓鏍鳳紝閭d箞灝卞彲浠ヨ偗瀹氭槸鏈夐棶棰樼殑銆?

濡備綍璇誨彇鍜屾牎楠孧D5淇℃伅

浜嗚В浜哅D5淇℃伅浠ュ悗錛屼笅闈㈡垜浠潵鐪嬩竴鐪嬪浣曡鍙栧茍鏍¢獙鏂囦歡鐨凪D5淇℃伅銆傝繖闇瑕佷竴嬈炬嫻婱D5鍊肩殑涓撻棬灝忚蔣浠訛紝榪欐槸涓嬈劇豢鑹茶蔣浠訛紝瑙e帇緙╁悗榪愯鍏朵腑鐨凪D5.EXE鏂囦歡鍗沖彲銆傝蔣浠剁殑浣跨敤闈炲父綆鍗曪紝鐐瑰嚮“Open”鎸夐挳錛岄夋嫨騫舵墦寮鎯寵榪涜鏍¢獙鐨勬枃浠訛紝紼嶇瓑鐗囧埢鍚庯紝鍦∕D5涓鏍忎腑渚夸細鏄劇ず璇ユ枃浠剁殑MD5鍊鹼紝灝嗚鏁板煎悓緗戠珯鍏竷鐨勬暟鍊艱繘琛屾瘮杈冨嵆鍙‘瀹氭枃浠舵槸鍚﹀畬鏁翠簡銆傜偣鍑?#8220;Save”鎸夐挳鍙互灝嗚鍙栫殑MD5淇濆瓨涓轟竴涓?MD5鏂囦歡錛岀敤璁頒簨鏈墦寮璇ユ枃浠訛紝鍙互灝哅D5鍊煎鍒跺嚭鏉ャ?

涓轟簡楠岃瘉鏂囦歡淇敼鍚庣殑MD5鍊兼槸鍚﹀彂鐢熷彉鍖栵紝絎旇呯敤涓涓枃鏈枃浠惰繘琛屼簡嫻嬭瘯銆傚鍥?鎵紺猴紝絎竴涓枃浠朵負榪涜嫻嬭瘯鐨勫師濮嬫枃浠訛紝絎簩涓枃浠朵負榪涜淇敼鍚庣殑鏂囦歡(涓嶈繃鍙槸鍦ㄦ墦寮鍘熷鏂囦歡鐨勫熀紜涓婂姞鍏ヤ簡涓涓┖鏍?錛岀涓変釜鏂囦歡涓哄師濮嬫枃浠剁殑澶嶅埗鏂囦歡銆備粠鍥句腑鍙互鐪嬪嚭錛屽敖綆℃敼鍔ㄤ笉澶э紝浣嗘槸涓や釜鏂囦歡鐨凪D5鍊煎嵈澶х浉寰勫涵錛岃屽鍒跺緱鍒扮殑鏂囦歡鍒欎笉浼氬彂鐢熷彉鍖栥?

Prayer 2009-12-07 14:13 鍙戣〃璇勮
]]>
寮傛垨榪愮畻^鍜屼粬鐨勪竴涓父鐢ㄤ綔鐢?/title><link>http://www.shnenglu.com/prayer/archive/2009/10/12/98373.html</link><dc:creator>Prayer</dc:creator><author>Prayer</author><pubDate>Mon, 12 Oct 2009 06:09:00 GMT</pubDate><guid>http://www.shnenglu.com/prayer/archive/2009/10/12/98373.html</guid><wfw:comment>http://www.shnenglu.com/prayer/comments/98373.html</wfw:comment><comments>http://www.shnenglu.com/prayer/archive/2009/10/12/98373.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/prayer/comments/commentRss/98373.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/prayer/services/trackbacks/98373.html</trackback:ping><description><![CDATA[<div id="v9rzrnn" class=cnt id=blog_text> <p> </p> <p><font face=瀹嬩綋>鍙戠幇涓涓柊鐭ヨ瘑錛屼粙緇嶇粰澶у錛?/font></p> <p><font face=瀹嬩綋>浜岃繘鍒跺紓鎴栬繍綆楋細</font><font face=瀹嬩綋><strong>涓よ呯浉絳変負0,涓嶇瓑涓?.</strong><br><br>榪欐牱鎴戜滑鍙戠幇浜ゆ崲涓や釜鏁存暟鐨勫兼椂鍙互涓嶇敤絎笁涓弬鏁般?br>濡俛=11,b=9.浠ヤ笅鏄簩榪涘埗<br>a=a^b=1011^1001=0010;<br>b=b^a=1001^0010=1011;<br>a=a^b=0010^1011=1001;<br>榪欐牱涓鏉=9,b=11浜嗐?br><br><br>涓句竴涓繍鐢紝 鎸変竴涓寜閽氦鎹袱涓猰c鐨勪綅緗彲浠ヨ繖鏍楓倂b<br><br>mybt.onPress=function()<br>{<br>mc1._x=mc1._x^mc2._x;<br>mc2._x=mc2._x^mc1._x;<br>mc1._x=mc1._x^mc2._x;<br>//<br>mc1._y=mc1._y^mc2._y; <br>mc2._y=mc2._y^mc1._y;<br>mc1._y=mc1._y^mc2._y;<br>}<br><br>榪欐牱灝卞彲浠ヤ笉閫氳繃鐩戞椂鍙橀噺鏉ヤ紶閫掍簡銆?/font></p> </div> <br> <img src ="http://www.shnenglu.com/prayer/aggbug/98373.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/prayer/" target="_blank">Prayer</a> 2009-10-12 14:09 <a href="http://www.shnenglu.com/prayer/archive/2009/10/12/98373.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p> <a href="http://www.shnenglu.com/" title="精品视频久久久久">精品视频久久久久</a> <div class="friend-links"> </div> </div> </footer> <a href="http://www.dgtspcb.com.cn" target="_blank">人人狠狠综合久久亚洲</a>| <a href="http://www.nancanxie.cn" target="_blank">久久超乳爆乳中文字幕</a>| <a href="http://www.ijesus.com.cn" target="_blank">午夜肉伦伦影院久久精品免费看国产一区二区三区 </a>| <a href="http://www.dgtspcb.com.cn" target="_blank">国产偷久久久精品专区</a>| <a href="http://www.ithaiyang.com.cn" target="_blank">国产精品久久免费</a>| <a href="http://www.aiucv.cn" target="_blank">久久久亚洲欧洲日产国码是AV </a>| <a href="http://www.uj60.cn" target="_blank">亚洲国产成人久久综合区</a>| <a href="http://www.blog060422.cn" target="_blank">久久综合久久自在自线精品自</a>| <a href="http://www.rh-hr.cn" target="_blank">久久精品国产WWW456C0M</a>| <a href="http://www.zqdy.com.cn" target="_blank">久久亚洲日韩精品一区二区三区</a>| <a href="http://www.apple-tree.com.cn" target="_blank">国产午夜精品久久久久九九</a>| <a href="http://www.zhengyuezp.cn" target="_blank">7777精品伊人久久久大香线蕉</a>| <a href="http://www.weixinqun688.cn" target="_blank">久久精品视频免费</a>| <a href="http://www.sooniy.com.cn" target="_blank">亚洲精品无码久久久久久</a>| <a href="http://www.ijesus.com.cn" target="_blank">久久国产视频网</a>| <a href="http://www.lxbike.cn" target="_blank">一级做a爰片久久毛片人呢</a>| <a href="http://www.ktrb.net.cn" target="_blank">97精品依人久久久大香线蕉97</a>| <a href="http://www.1118.org.cn" target="_blank">精品熟女少妇aⅴ免费久久</a>| <a href="http://www.cnsei.cn" target="_blank">国产精品天天影视久久综合网</a>| <a href="http://www.um258.cn" target="_blank">精品综合久久久久久97</a>| <a href="http://www.xhc9jinmutongsm.cn" target="_blank">日本精品久久久久久久久免费</a>| <a href="http://www.huameizc.cn" target="_blank">精品综合久久久久久97超人</a>| <a href="http://www.yayalove.cn" target="_blank">婷婷综合久久中文字幕蜜桃三电影</a>| <a href="http://www.gven.cn" target="_blank">久久久久无码精品国产app</a>| <a href="http://www.dgzcwdlaw.cn" target="_blank">中文精品久久久久国产网址</a>| <a href="http://www.antispy.cn" target="_blank">久久Av无码精品人妻系列</a>| <a href="http://www.517down.cn" target="_blank">精品久久亚洲中文无码</a>| <a href="http://www.xeqw.cn" target="_blank">久久精品国产亚洲AV蜜臀色欲 </a>| <a href="http://www.thankers.com.cn" target="_blank">国产精品久久婷婷六月丁香</a>| <a href="http://www.x6844.cn" target="_blank">久久久久亚洲?V成人无码</a>| <a href="http://www.oqiang.cn" target="_blank">国产成人精品综合久久久</a>| <a href="http://www.alibabataba.cn" target="_blank">久久综合综合久久狠狠狠97色88 </a>| <a href="http://www.effusion.net.cn" target="_blank">久久久久无码精品</a>| <a href="http://www.zgpojie.cn" target="_blank">久久国产视屏</a>| <a href="http://www.qimenglw.cn" target="_blank">亚洲国产成人精品无码久久久久久综合 </a>| <a href="http://www.xldgdq.cn" target="_blank">欧美午夜精品久久久久久浪潮</a>| <a href="http://www.schzjy.cn" target="_blank">久久激情亚洲精品无码?V</a>| <a href="http://www.413qq.cn" target="_blank">久久影视国产亚洲</a>| <a href="http://www.92mo.cn" target="_blank">九九精品久久久久久噜噜</a>| <a href="http://www.020xyk.cn" target="_blank">国产偷久久久精品专区</a>| <a href="http://www.wodedaxue.com.cn" target="_blank">无码伊人66久久大杳蕉网站谷歌</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>