RSAËã·¨ºÍRSAÊý×ÖÇ©ÃûËã·¨µÄʵÏÖ ÏÂÔØ±¾ÎÄ

RSAËã·¨ºÍRSAÊý×ÖÇ©ÃûËã·¨µÄʵÏÖ

ÕªÒª RSAËã·¨ÊÇÒ»ÖÖ¹«Ô¿ÃÜÂëËã·¨.ʵÏÖRSAËã·¨°üÀ¨Éú³ÉRSAÃÜÔ¿£¬ÓÃ

RSA¼ÓÃܹæÔòºÍ½âÃܹæÔò´¦ÀíÊý¾Ý¡£RSAÊý×ÖÇ©ÃûËã·¨ÀûÓÃRSAË㷨ʵÏÖÊý×ÖÇ©Ãû¡£±¾ÎÄÏêÊöÁËRSAËã·¨µÄ»ù±¾Ô­Àí, RSA¼ÓÃÜËã·¨µÄʵÏÖÒÔ¼°ÈçºÎÀûÓÃRSAʵÏÖÊý×ÖÇ©Ãû.

¹Ø¼ü×Ö RSAËã·¨, Êý×ÖÇ©Ãû, ¹«¿ªÃÜÔ¿, ˽ÈËÃÜÔ¿, ¼ÓÃÜ, ½âÃÜ ÖÐͼ·ÖÀàºÅ TP301

Ò»¡¢ÒýÑÔ

Ëæ×ÅÍøÂç¼¼ÊõµÄ·ÉËÙ·¢Õ¹£¬ÐÅÏ¢°²È«ÐÔÒѳÉΪؽ´ý½â¾öµÄÎÊÌâ¡£¹«Ô¿ÃÜÂëÌåÖÆÖУ¬½âÃܺͼÓÃÜÃÜÔ¿²»Í¬£¬½âÃܺͼÓÃܿɷÖÀ룬ͨÐÅË«·½ÎÞÐëÊÂÏȽ»»»ÃÜÔ¿¾Í¿É½¨Á¢Æð±£ÃÜͨÐÅ£¬½ÏºÃµØ½â¾öÁË´«Í³ÃÜÂëÌåÖÆÔÚÍøÂçͨÐÅÖгöÏÖµÄÎÊÌâ¡£ÁíÍâ£¬Ëæ×ŵç×ÓÉÌÎñµÄ·¢Õ¹£¬ÍøÂçÉÏ×ʽðµÄµç×Ó½»»»ÈÕ񾮵·±£¬ÈçºÎ·ÀÖ¹ÐÅÏ¢µÄαÔìºÍÆÛÆ­Ò²³ÉΪ·Ç³£ÖØÒªµÄÎÊÌâ¡£Êý×ÖÇ©Ãû¿ÉÒÔÆðµ½Éí·ÝÈÏÖ¤¡¢ºË×¼Êý¾ÝÍêÕûÐÔµÄ×÷Óá£Ä¿Ç°¹ØÓÚÊý×ÖÇ©ÃûµÄÑо¿Ö÷Òª¼¯ÖлùÓÚ¹«Ô¿ÃÜÂëÌåÖÆµÄÊý×ÖÇ©Ãû¡£

¹«Ô¿ÃÜÂëÌåÖÆµÄÌØµãÊÇ£ºÎªÃ¿¸öÓû§²úÉúÒ»¶ÔÃÜÔ¿£¨PKºÍ£Ó£Ë£©£»£Ð£Ë¹«¿ª£¬£Ó£Ë±£ÃÜ£»´Ó£Ð£ËÍÆ³ö£Ó£ËÊǺÜÀ§Äѵ컣Á¡¢£ÂË«·½Í¨ÐÅʱ£¬£Áͨ¹ýÈκÎ;¾¶È¡µÃ£ÂµÄ¹«Ô¿£¬ÓãµĹ«Ô¿¼ÓÃÜÐÅÏ¢¡£¼ÓÃܺóµÄÐÅÏ¢¿Éͨ¹ýÈκβ»°²È«ÐŵÀ·¢ËÍ¡££ÂÊÕµ½ÃÜÎÄÐÅÏ¢ºó£¬ÓÃ×Ô¼ºË½Ô¿½âÃָܻ´³öÃ÷ÎÄ¡£

¹«Ô¿ÃÜÂëÌåÖÆÒѳÉΪȷ±£ÐÅÏ¢µÄ°²È«ÐԵĹؼü¼¼Êõ¡£RSA¹«Ô¿ÃÜÂëÌåÖÆµ½Ä¿Ç°ÎªÖ¹»¹ÊÇÒ»ÖÖÈÏ¿ÉΪ°²È«µÄÌåÖÆ¡£±¾ÎÄÏêÊöÁËRSAËã·¨ºÍÓÃRSAË㷨ʵÏÖÊý×ÖÇ©ÃûµÄÀíÂÛ£¬ÒÔ¼°ËüÃÇÔÚʵ¼ÊÓ¦ÓÃÖеÄʵÏÖ¡£

¶þ¡¢RSAËã·¨ºÍRSAÊý×ÖÇ©ÃûËã·¨µÄÀíÂÛÃèÊö

1 RSAËã·¨

RSAËã·¨µÄÀíÂÛ»ù´¡ÊÇÒ»ÖÖÌØÊâµÄ¿ÉĿģÃÝÔËËã¡£

ÉènÊÇÁ½¸ö²»Í¬ÆæËØÊýpºÍqµÄ»ý£¬¼´£ºn=pq, ?(n)=(p-1)(q-1)¡£

¶¨ÒåÃÜÔ¿¿Õ¼ä k={(n,p,q,d,e)|n=pq,pºÍqÊÇËØÊý£¬de?1 mod ?(n),eÎªËæ»úÕûÊý},

¶Ôÿһ¸ök=(n,p,q,d,e),

¶¨Òå¼ÓÃܱ任Ϊ Ek(x)=xb mod n£¬x?Zn;

½âÃܱ任Ϊ Dk(x)=ya mod n,y?Zn£¬ZnΪÕûÊý¼¯ºÏ¡£ ¹«¿ªnºÍb£¬±£ÃÜp,qºÍa.

Ϊ֤Ã÷¼ÓÃܱ任EkºÍ½âÃܱ任 DkÂú×ãDk(Ek(x))=x,ÕâÀï²»¼ÓÖ¤Ã÷µÄÒýÓÃÏÂÃæÁ½¸ö¶¨Àí£º

¶¨Àí1£¨Euler£©¶ÔÈÎÒâµÄa?Zn*,ÓÐa?(n)?1 mod n,ÆäÖÐZn*={x?Zn|gcd(x,n)=1},?(¡¤)±íʾEulerº¯Êý¡£ ¶¨Àí2 ÉèpºÍqÊÇÁ½¸ö²»Í¬µÄËØÊý£¬n=pq, ?(n)=(p-1)(q-1)£¬¶ÔÈÎÒâµÄx?Zn¼°ÈÎÒâµÄ·Ç¸ºÕûÊýk,ÓÐ xk?(n)+1?x mod n.

ÏÖÔÚÀ´Ö¤Ã÷RSAËã·¨µÄ¼ÓÃܱ任ºÍ½âÃܱ任µÄÕýÈ·ÐÔ¡£

Ö¤Ã÷£º ¶ÔÓÚ¼ÓÃܱ任EkºÍ½âÃܱ任Dk¡£ÒòΪab?1 mod ?(n)£¬ËùÒÔ¿ÉÉèab=t?(n)+1,tÊÇÕûÊýÇÒt?1¡£¶ÔÓÚÈÎÒâµÄx?Zn£¬ÓÐDk(Ek(x))?Dk(xb)

?(xb)a?xt?(n)+1?x mod n.Òò´Ë½âÃܹý³ÌÊÇÕýÈ·µÄ¡£

2 RSAÊý×ÖÇ©ÃûËã·¨

RSAÊý×ÖÇ©ÃûËã·¨µÄ¹ý³ÌΪ£ºA¶ÔÃ÷ÎÄmÓýâÃܱ任×÷: s? Dk (m)=md mod n,ÆäÖÐd£¬nΪAµÄ˽ÈËÃÜÔ¿£¬Ö»ÓÐA²ÅÖªµÀËü£»BÊÕµ½£ÁµÄÇ©Ãûºó£¬ÓÃAµÄ¹«Ô¿ºÍ¼ÓÃܱ任µÃµ½Ã÷ÎÄ£¬Òò: Ek(s)= Ek(Dk (m))= (md)e mod n,ÓÖ de?1 mod ?(n)¼´de=l?(n)+1,¸ù¾ÝÅ·À­¶¨Àím?(n)=1 mod n£¬ËùÒÔEk(s)=ml?(n)+1=[m?(n)]em=m mod n¡£ÈôÃ÷ÎÄmºÍÇ©ÃûsÒ»ÆðË͸øÓû§B,B¿ÉÒÔÈ·ÐÅÐÅϢȷʵÊÇA·¢Ë͵ġ£Í¬Ê±AÒ²²»ÄÜ·ñÈÏË͸øÕâ¸öÐÅÏ¢£¬ÒòΪ³ýÁËA±¾ÈËÍ⣬ÆäËûÈκÎÈ˶¼ÎÞ·¨ÓÉÃ÷ÎÄm²úÉús.Òò´ËRSAÊý×ÖÇ©Ãû·½°¸ÊÇ¿ÉÐеġ£

µ«ÊÇRSAÊý×ÖÇ©ÃûËã·¨´æÔÚ×ÅÒò¼ÆËã·½·¨±¾Éíͬ¹¹Ôì³ÉÇ©ÃûÒ×±»Î±ÔìºÍ¼ÆËãʱ¼ä³¤µÄÈõµã,Òò´Ëʵ¼Ê¶ÔÎļþÇ©Ãûǰ£¬ÐèÒª¶ÔÏûÏ¢×öMD5±ä»»¡£ MD5º¯ÊýÊÇÒ»ÖÖµ¥ÏòÉ¢Áк¯Êý£¬Ëü½«ÈÎÒⳤ¶ÈµÄÏûϢѹËõ³É128λµÄÏûÏ¢ÕªÒª¡£Ó¦ÓÃMD5µÄµ¥ÏòÐÔ£¨¼´¸ø¶¨É¢ÁÐÖµ,¼ÆËãÏûÏ¢ºÜÄÑ£©ºÍ¿¹ÅöײÐÔ(¼´¸ø¶¨ÏûÏ¢M£¬ÒªÕÒµ½ÁíÒ»ÏûÏ¢M¡¯ ²¢Âú×ãÁ½ÕßµÄÉ¢ÁÐÖµºÜÄÑ)£¬¿ÉÒÔʵÏÖÐÅÏ¢µÄÍêÕûÐÔ¼ìÑé¡£ÁíÍâ¸Ãº¯ÊýµÄÉè¼Æ²»»ùÓÚÈκμÙÉèºÍÃÜÂëÌåÖÆ¶øÖ±½Ó¹¹Ô죬ִÐеÄËٶȿ죬ÊÇÒ»ÖÖ±»¹ã·ºÈϿɵĵ¥ÏòÉ¢ÁÐËã·¨¡£

Èý¡¢RSAËã·¨µÄʵÏÖ

RSAËã·¨µÄʵÏÖ·ÖΪ£ºÉú³ÉÃÜÔ¿£¬¼ÓÃÜ£¬½âÃÜ¡£ 1 Êý¾Ý½á¹¹

RSAÃÜÂëϵͳµÄ°²È«ÐÔÒÀÀµÓÚ´óÊý·Ö½âµÄÄѶȣ¬Ò»°ã½¨ÒéÓû§Ñ¡ÔñµÄËØÊýpºÍqÖÁÉÙΪ100룬Ôòn=pqÊÇÖÁÉÙΪ200λµÄÊ®½øÖÆÊý¡£Òò´ËʵÏÖRSAËã·¨ÓбØÒª¶¨Òå´óÊýµÄÊý¾Ý½á¹¹ÈçͼһËùʾ¡£

ÃÜÔ¿Éú³É£¬¼ÓÃܺͽâÃÜÉæ¼°µ½Ò»Ð©´óÊýµÄ»ù±¾typedef struct ÔËËã¡£¶¨Òå´óÊýµÄ»ù±¾ÔËËã¿â£¬°üÀ¨¼Ó¡¢¼õ¡¢{ ³Ë¡¢³ý¡¢È¡Ä£ÔËËãµÈ£¬ÆäÖÐ×îÖØÒªµÄÄ£³ËÔËËã unsigned long int ºÍÄ£ÃÝÔËËã¡£ bn[MAX_LENGTH]; Ä£ÃÝËã·¨ÊǼÓÃܽâÃܵĺËÐÄËã·¨¡£¼ÆËãÄ£ÃÝµÄ unsigned int size; Ò»ÖÖÓÐЧËã·¨ÊÇ¡°Æ½·½-³Ë¡±·½·¨£¬Í¨¹ý¶ÔÖ¸Êý}BigNum µÄ¶þ½øÖÆ»¯À´ÊµÏÖ¡£8 ͼ£² ´ó¹ý³ÌÈçͼ1£º ÊýµÄÊý¾Ý½á¹¹ Procedure modmult begin

Z=1

typedef struct { for i=l-1 downto 0 do:

unsigned int bits; /* ¹«Ô¿n begin

µÄλÊý */ Z=Z 2 mod n;

char if bi=1 then Z=Z*x mod n; unsigned modulus[MAX_RSA_ LEN] ;/*¹«Ô¿ end

n*/ end

unsigned char ͼһ

exponent[MAX_RSA_LEN]; /*¹«Ô¿2 ÃÜÔ¿µÄÉú³É

e*/ 2.1 RSA¹«Ô¿ºÍ˽ԿµÄ½á¹¹¶¨Òå

¸ù¾ÝÎĵµPKCS#1¶¨ÒåRSA¹«Ô¿ºÍ} RSA_PUBLIC_KEY; ˽Կ·Ö±ðÈçͼ2ºÍͼ3¡£ÀíÂÛÉϽ²£¬RSA ͼ£³ RSA¹«Ë½Ô¿Ö»Ðè°üÀ¨½âÃÜÄ£ÊýºÍ½âÃÜÖ¸Êý¡£Ô¿ µ«ÊÇΪ¼Ó¿ìRSA½âÃܼÆËãµÄЧÂÊ£¬²ÉÓÃÖйúÊ£ÓඨÀíËã·¨£¬Òò´ËRSA˽Կ°üº¬p,q,d mod (p-1),d mod (q-1),q-1 mod p,ÆäÖÐp,qΪ´óËØÊý, d mod (p-1), d mod (q-1),q-1 mod pÓɼÆËã¹ý³ÌÉú³É¡£

2.2 Éú³ÉÃÜÔ¿²½Öè

Éú³ÉRSAÃÜÔ¿ÐèÍê³ÉÏÂÁв½Ö裺 typedef struct { (1) Ñ¡ÔñeµÄֵΪ3»òÕß25537; unsigned int bits; /*¹«Ô¿nµÄ³¤ (2) Ëæ»úÉú³É´óËØÊýp£¬Ö±µ½gcd ¶È*/ (e,p-1)=1; unsigned char ÆäÖÐgcd(a,b)±íʾa,bÈ¡×î´ó¹«modulus[MAX_RSA_LEN]; /*¹«Ô¿n */ Ô¼Êý unsigned char (3) Ëæ»úÉú³É²»Í¬ÓÚpµÄ´óËØÊýq£¬publicExponent[MAX_RSA_ LEN]; /*¹«Ö±µ½ Ô¿e */ gcd (e,q-1)=1; unsigned char (4) ¼ÆËãn=pq , ?(n)=(p-1)(q-1); exponent[MAX_RSA_LEN]; /*˽Կd*/ (5) ¼ÆËãd,Âú×ãde?1 (mod ?(n)); unsigned char prime[2][MAX_RSA_ (6) ¼ÆËãd mod (p-1), d mod (q-1); LEN]; /*Á½¸öËØÊýÒò×Ó*/ (7) ¼ÆËãq-1 mod p; unsigned char (8) ½«n,e·ÅÈëRSA¹«Ô¿£»½«n,e,d primeExponent[2][MAX_RSA_PRIME_LE-1

mod (p-1),d mod (q-1) q mod p·ÅN]; ÈëRSA˽Կ¡£ unsigned char Ëæ»úËØÊýµÄ²úÉú¿É·ÖΪÁ½¸öÄ£¿é£º coefficient[MAX_RSA_PRIME_LEN]; } RSA_PRIVATE_KEY; 2.2.1 Ëæ»úÊýµÄ²úÉú ͼ4 RSA˽Կ Ëæ»úÊý²»½öÓÃÓÚÃÜÔ¿Éú³É,Ò²ÓÃ

×÷¹«Ô¿¼ÓÃÜʱµÄÌî³ä×Ö·û¡£Ëü±ØÐë¾ßÓÐ×ã¹»µÄËæ»úÐÔ£¬ÒÔ·ÀÖ¹ÆÆÒëÕßÕÆÎÕËæ»úÊýµÄ¹æÂÉÐÔºóÖØÏÖÃÜÔ¿µÄÅäÖÆ¹ý³Ì»òÕß̽²âµ½¼ÓÃÜ¿éÖеÄÃ÷ÎÄ¡£ÒòΪÔÚ¼ÆËã»úÉϲ»¿ÉÄܲúÉúÕæÕýµÄËæ»úÊý£¬Êµ¼Ê²ÉÓÃÖÜÆÚ´óÓÚ2256λµÄÎ±Ëæ»úÐòÁз¢ÉúÆ÷¡£ ʵÏÖ¹ý³ÌΪ£º

(1) ¼Ç¼ÏàÁÚÁ½´ÎÇû÷¼üÅ̵Äʱ¼ä¼ä¸ô£¬Ö±µ½²»ÔÙÐèÒªËæ»úʼþ¡£ (2) ×öMD5¼ÆË㣬ֱµ½²»ÔÙÐèÒªÎ±Ëæ»úÊý¡£

2.2.2 ËØÊýµÄ²úÉú

¶ÔËæ»úÊý×÷ËØÐÔ¼ì²â£¬Èôͨ¹ýÔòÎªËØÊý£»·ñÔòÔö¼ÓÒ»¸ö²½³¤ºóÔÙ×öËØÐÔ¼ì²â£¬Ö±µ½ÕÒ³öËØÊý¡£ËØÐÔ¼ì²â²ÉÓÃFermat²âÊÔ¡£Õâ¸öËã·¨µÄÀíÂÛÒÀ¾ÝÊǷѶûÂíС¶¨Àí£ºÈç¹ûmÊÇÒ»¸öËØÊý£¬ÇÒa²»ÊÇmµÄ±¶Êý£¬ÄÇô¸ù¾Ý·Ñ¶ûÂíС¶¨ÀíÓУºa m-1=1 ( mod m)¡£ ʵ¼ÊÓ¦ÓÃʱ£ºa m-1 = 1 ( mod m)? a m = a ( mod m) ?a= a m ( mod m)£¬ Òò´Ë¶ÔÓÚÕûÊým£¬Ö»Ðè¼ÆËãa m ( mod m)£¬ÔÙ½«½á¹ûÓëa±È½Ï£¬Èç¹ûÁ½ÕßÏàͬ£¬ÔòmÎªËØÊý¡£Ñ¡È¡a=2£¬ÔòaÒ»¶¨²»»áÊÇÈκÎËØÊýµÄ±¶Êý¡£

3 ¼ÓÃܹý³Ì

¼ÓÃܹæÔòΪ£ºEk(x)=xb mod n£¬x?Zn

¼ÓÃܹý³ÌµÄÊäÈëΪ£ºÃ÷ÎÄÊý¾ÝD£¬Ä£Êýn, ¼ÓÃÜÖ¸Êýe£¨¹«Ô¿¼ÓÃÜ£©»ò½âÃÜÖ¸Êýd£¨Ë½Ô¿¼ÓÃÜ£©¡£Êä³öΪÃÜÎÄ¡£DµÄ³¤¶È²»³¬¹ý[log2n]-11£¬ÒÔÈ·±£×ª»»ÎªPKCS¸ñʽʱ£¬Ìî³ä´®µÄÊýÄ¿²»Îª0¡£

(1) ¸ñʽ»¯Ã÷ÎÄ¡£ ²ÉÓÃPKCS¸ñʽ£º EB = 00 || BT || PS || 00 || D ÆäÖÐBT±íʾ¿éµÄÀàÐÍ£¬PSΪÌî³ä´®£¬DΪÃ÷ÎÄÊý¾Ý¡£¿ªÍ·Îª0È·±£EB³¤¶È´óÓÚk¡£¶Ô¹«Ô¿¼ÓÃÜBT=02£¬¶Ô˽Կ½âÃÜBT=01¡£µ±BT=02ʱ£¬PSΪ·Ç0Ëæ»úÊý£»µ±BT=01£¬PSֵΪFF¡£

(2) Ã÷ÎÄÓÉ×Ö·ûÐÍÊý¾Ýת»»³ÉÕûÐÍÊý¾Ý¡£

(3) RSA¼ÆËã¡£ ΪÕûÊý¼ÓÃÜ¿éx×÷Ä£ÃÝÔËË㣺y = x^c mod n£¬0 <= y

ΪÃÜÎÄ£¬¹«Ô¿¼ÓÃÜʱ£¬cΪ¹«Ô¿¼ÓÃÜÖ¸Êýe£»Ë½Ô¿¼ÓÃÜʱ£¬cΪ˽Կ¼ÓÃÜÖ¸Êýd¡£

(4) ÃÜÎÄÓÉÕûÐÍÊý¾Ýת»»³É×Ö·ûÐÍÊý¾Ý¡£ 4 ½âÃܹý³Ì

½âÃܹæÔòΪ Dk(x)=yc mod n,y?Zn£¬ZnΪÕûÊý¼¯ºÏ,xΪÃÜÎÄ¡£

½âÃܹý³ÌµÄÊäÈëΪ£ºÃÜÎÄED£»Ä£Êýn£»¼ÓÃÜÖ¸Êýe£¨¹«Ô¿½âÃÜ£©»ò½âÃÜÖ¸Êýd£¨Ë½Ô¿½âÃÜ£©£¬½á¹ûΪÃ÷ÎÄ¡£ (1) ÃÜÎÄÕûÐÍ»¯¡£

(2) RSA¼ÆËã¡£ ¶ÔÃÜÎÄ×öÄ£ÃÝÔËË㣺x = y^c mod n, 0 <= x < n .£¬ÆäÖÐxΪÃ÷ÎÄ¡£

(3) ´ËʱÃ÷ÎÄΪÕûÐÍÊý¾Ý£¬×ª»»ÎªASCIIÐÍÊý¾Ý£¬µÃµ½PKCS¸ñʽµÄÃ÷ÎÄ¡£ (4) ´ÓPKCS¸ñʽÃ÷ÎÄÖзÖÀë³öÔ­Ã÷ÎÄ¡£ ´ÓPKCS¸ñʽ·ÖÀëÃ÷ÎĵĹý³ÌÒ²ÊǼì²é

Êý¾ÝÍêÕûÐԵĹý³Ì¡£Èô³öÏÖÒÔÏÂÎÊÌâÔò½âÃÜʧ°Ü£º²»ÄÜÇå³þµÄ·Ö¸î£»Ìî³ä×Ö·û

ÉÙÓÚ64λ»òÓë£Â£ÔËù×¢Ã÷µÄÀàÐͲ»Æ¥Åä;£Â£ÔÓëʵ¼Ê²Ù×÷ÀàÐͲ»·û¡£

ËÄ¡¢ RSAÊý×ÖÇ©ÃûËã·¨µÄʵÏÖ

RSAÊý×ÖÇ©ÃûËã·¨£¬°üÀ¨Ç©ÃûËã·¨ºÍÑé֤ǩÃûËã·¨¡£Ê×ÏÈÓÃMD5Ëã·¨¶ÔÐÅÏ¢×÷É¢ÁмÆË㡣ǩÃûµÄ¹ý³ÌÐèÓû§µÄ˽Կ£¬ÑéÖ¤¹ý³ÌÐèÓû§µÄ¹«Ô¿¡£AÓÃÇ©ÃûËã·¨½«×Ö·û´®ÐÎʽµÄÏûÏ¢´¦Àí³ÉÇ©Ãû£»BÓÃÑé֤ǩÃûËã·¨Ñé֤ǩÃûÊÇ·ñÊÇA¶ÔÏûÏ¢µÄÇ©Ãû£¬È·ÈÏÊÇA·¢Ë͵ÄÏûÏ¢£»ÏûϢûÓб»ß¬¸Ä¹ý£»AÒ»¶¨·¢Ë͹ýÏûÏ¢¡£

1 Ç©ÃûËã·¨

Ç©ÃûËã·¨°üÀ¨Èý²½£ºÏûÏ¢ÕªÒª¼ÆË㣬RSA¼ÓÃÜ¡£ (1) ÏûÏ¢ÕªÒª¼ÆËã¡£ ÏûÏ¢ÔÚÇ©ÃûǰÊ×ÏÈͨ¹ýMD5¼ÆË㣬Éú³É128λµÄÏû