ɨһɨ
·ÖÏíÎÄÕµ½Î¢ÐÅ
ɨһɨ
¹Ø×¢¹Ù·½¹«ÖÚºÅ
ÖÁ¶¥Í·Ìõ
¡¡¡¡±£ÃÜÐÔ£º·ÀÖ¹Óû§µÄ±êʶ»òÊý¾Ý±»¶ÁÈ¡¡£
¡¡¡¡Êý¾ÝÍêÕûÐÔ£º·ÀÖ¹Êý¾Ý±»¸ü¸Ä¡£
¡¡¡¡Éí·ÝÑéÖ¤£ºÈ·±£Êý¾Ý·¢×ÔÌض¨µÄÒ»·½¡£
¡¡¡¡»ù±¾¸ÅÄ
¡¡¡¡1¡¢É¢ÁУ¨HASH£©º¯Êý
¡¡¡¡É¢ÁУ¨HASH£©º¯ÊýHÒ²³Æ¹þÏ£º¯Êý»òÔÓ´Õº¯ÊýµÈ£¬ÊǵäÐ͵ĶൽһµÄº¯Êý£¬ÆäÊäÈëΪһ¿É±ä³¤x£¨¿ÉÒÔ×ã¹»µÄ³¤£©£¬Êä³öÒ»¹Ì¶¨³¤µÄ´®h£¨Ò»°ãΪ128λ¡¢160룬±ÈÊäÈëµÄ´®¶Ì£©£¬¸Ã´®h±»³ÆΪÊäÈëxµÄHashÖµ£¨»ò³ÆÏûÏ¢ÕªÒªMessage Digest¡¢Ö¸ÎÆ¡¢ÃÜÂëУÑéºÍ»òÏûÏ¢ÍêÕûÐÔУÑ飩£¬¼Æ×÷h=H£¨x£©¡£Îª·ÀÖ¹´«ÊäºÍ´æ´¢µÄÏûÏ¢±»ÓÐÒâ»òÎÞÒâµØ´Û¸Ä£¬²ÉÓÃÉ¢Áк¯Êý¶ÔÏûÏ¢½øÐÐÔËËãÉú³ÉÏûÏ¢ÕªÒª£¬¸½ÔÚÏûÏ¢Ö®ºó·¢³ö»òÓëÐÅÏ¢Ò»Æð´æ´¢£¬ËüÔÚ±¨ÎÄ·ÀαÖоßÓÐÖØÒªÓ¦Óá£
¡¡¡¡ÏûÏ¢ÕªÒª²ÉÓÃÒ»ÖÖµ¥ÏòÉ¢ÁÐËã·¨½«Ò»¸öÏûÏ¢½øÐл»Ëã¡£ÔÚÏûÏ¢ÕªÒªËã·¨ÖУ¬ÎļþÊý¾Ý×÷Ϊµ¥ÏòÉ¢ÁÐÔËËãµÄÊäÈ룬Õâ¸öÊäÈëͨ¹ýHASHº¯Êý²úÉúÒ»¸öÉ¢ÁÐÖµ¡£Èç¹û¸Ä¶¯ÁËÎļþ£¬É¢ÁÐÖµ¾Í»áÏàÓ¦µØ¸Ä±ä£¬½ÓÊÕÕß¼´Äܼì²âµ½ÕâÖָĶ¯¹ýµÄºÛ¼£¡£´ÓÀíÂÛÉÏÀ´½²£¬¹¥»÷Õß²»¿ÉÄÜÖÆÔìÒ»¸öÌæÓõÄÏûÏ¢À´²úÉúÒ»¸öÍêÈ«ÏàͬµÄÏûÏ¢ÕªÒª¡£Hashº¯Êý¿ÉÓÃÓÚÊý×ÖÇ©Ãû¡¢ÏûÏ¢µÄÍêÕûÐÔ¼ì²â¡¢ÏûÏ¢µÄÆðÔ´ÈÏÖ¤¼ì²âµÈ¡£
¡¡¡¡É¢Áк¯ÊýÊÇ°²È«µÄÊÇÖ¸Ëü¾ßÓУº
¡¡¡¡Ò»ÖÂÐÔ£ºÏàͬµÄÊäÈë²úÉúÏàͬµÄÊä³ö¡£
¡¡¡¡Ëæ»úÐÔ£ºÏûÏ¢ÕªÒªÍâ¹ÛÊÇËæ»úµÄ£¬ÒÔ·À±»²Â³öÔ´ÏûÏ¢¡£
¡¡¡¡Î¨Ò»ÐÔ£º¼¸ºõ²»¿ÉÄÜÕÒµ½Á½¸öÏûÏ¢²úÉúÏàͬµÄÏûÏ¢ÕªÒª¡£
¡¡¡¡µ¥ÏòÐÔ£º¼´Èç¹û¸ø³öÊä³ö£¬ÔòºÜÄÑÈ·¶¨³öÊäÈëÏûÏ¢¡£
¡¡¡¡Hashº¯ÊýHÒ»°ãÂú×ãÒÔϼ¸¸ö»ù±¾ÒªÇó£º
¡¡¡¡£¨1£©ÊäÈëx¿ÉÒÔΪÈÎÒⳤ¶È£»Êä³öÊý¾Ý´®³¤¶È¹Ì¶¨£»
¡¡¡¡£¨2£©ÕýÏò¼ÆËãÈÝÒ×£¬¼´¸ø¶¨ÈκÎx£¬ÈÝÒ×Ëã³öH£¨x£©£»·´Ïò¼ÆËãÀ§ÄÑ£¬¼´¸ø³öÒ»HashÖµh£¬ºÜÄÑÕÒ³öÒ»Ìض¨ÊäÈëx£¬Ê¹h=H£¨x£©£»
¡¡¡¡£¨3£©¿¹³åÍ»ÐÔ£¨¿¹ÅöײÐÔ£©£¬°üÀ¨Á½¸öº¬Ò壬һÊǸø³öÒ»ÏûÏ¢x£¬ÕÒ³öÒ»ÏûÏ¢yʹH£¨x£©=H£¨y£©ÊǼÆËãÉϲ»¿ÉÐеģ¨Èõ¿¹³åÍ»£©£¬¶þÊÇÕÒ³öÈÎÒâÁ½ÌõÏûÏ¢x¡¢y£¬Ê¹H£¨x£©=H£¨y£©Ò²ÊǼÆËãÉϲ»¿ÉÐеģ¨Ç¿¿¹³åÍ»£©¡£
¡¡¡¡2¡¢Ë½Ô¿¼ÓÃÜ
¡¡¡¡Ë½Ô¿¼ÓÃÜÓÖ³ÆΪ¶Ô³Æ¼ÓÃÜ£¬ÒòΪͬһÃÜÔ¿¼ÈÓÃÓÚ¼ÓÃÜÓÖÓÃÓÚ½âÃÜ¡£Ë½Ô¿¼ÓÃÜËã·¨·Ç³£¿ì£¨Ó빫ԿËã·¨Ïà±È£©£¬ÌرðÊÊÓÃÓڶԽϴóµÄÊý¾ÝÁ÷Ö´ÐмÓÃÜת»»¡£
¡¡¡¡3¡¢¹«Ô¿¼ÓÃÜ£¨PKCS£©ºÍÊý×ÖÇ©Ãû
¡¡¡¡¹«Ô¿¼ÓÃÜʹÓÃÒ»¸ö±ØÐë¶Ôδ¾ÊÚȨµÄÓû§±£ÃܵÄ˽ԿºÍÒ»¸ö¿ÉÒÔ¶ÔÈκÎÈ˹«¿ªµÄ¹«Ô¿¡£Óù«Ô¿¼ÓÃܵÄÊý¾ÝÖ»ÄÜÓÃ˽Կ½âÃÜ£¬¶øÓÃ˽ԿǩÃûµÄÊý¾ÝÖ»ÄÜÓù«Ô¿ÑéÖ¤¡£¹«Ô¿¿ÉÒÔ±»ÈκÎÈËʹÓ㻸ÃÃÜÔ¿ÓÃÓÚ¼ÓÃÜÒª·¢Ë͵½Ë½Ô¿³ÖÓÐÕßµÄÊý¾Ý¡£Á½¸öÃÜÔ¿¶ÔÓÚͨÐŻỰ¶¼ÊÇΨһµÄ¡£¹«Ô¿¼ÓÃÜËã·¨Ò²³ÆΪ²»¶Ô³ÆËã·¨£¬ÔÒòÊÇÐèÒªÓÃÒ»¸öÃÜÔ¿¼ÓÃÜÊý¾Ý¶øÐèÒªÓÃÁíÒ»¸öÃÜÔ¿À´½âÃÜÊý¾Ý¡£
¡¡¡¡Êý¾Ý¼ÓÃÜ/±àÂëËã·¨Áбí
¡¡¡¡³£¼ûÓÃÓÚ±£Ö¤°²È«µÄ¼ÓÃÜ»ò±àÂëËã·¨ÈçÏ£º
¡¡¡¡1¡¢³£ÓÃÃÜÔ¿Ëã·¨
¡¡¡¡ÃÜÔ¿Ëã·¨ÓÃÀ´¶ÔÃô¸ÐÊý¾Ý¡¢ÕªÒª¡¢Ç©ÃûµÈÐÅÏ¢½øÐмÓÃÜ£¬³£ÓõÄÃÜÔ¿Ëã·¨°üÀ¨£º
¡¡¡¡DES£¨Data Encryption Standard£©£ºÊý¾Ý¼ÓÃܱê×¼£¬ËٶȽϿ죬ÊÊÓÃÓÚ¼ÓÃÜ´óÁ¿Êý¾ÝµÄ³¡ºÏ£»
¡¡¡¡3DES£¨Triple DES£©£ºÊÇ»ùÓÚDES£¬¶ÔÒ»¿éÊý¾ÝÓÃÈý¸ö²»Í¬µÄÃÜÔ¿½øÐÐÈý´Î¼ÓÃÜ£¬Ç¿¶È¸ü¸ß£»
¡¡¡¡RC2ºÍ RC4£ºÓñ䳤ÃÜÔ¿¶Ô´óÁ¿Êý¾Ý½øÐмÓÃÜ£¬±È DES ¿ì£»
¡¡¡¡IDEA£¨International Data Encryption Algorithm£©¹ú¼ÊÊý¾Ý¼ÓÃÜËã·¨£¬Ê¹Óà 128 λÃÜÔ¿Ìṩ·Ç³£Ç¿µÄ°²È«ÐÔ£»
¡¡¡¡RSA£ºÓÉ RSA ¹«Ë¾·¢Ã÷£¬ÊÇÒ»¸öÖ§³Ö±ä³¤ÃÜÔ¿µÄ¹«¹²ÃÜÔ¿Ëã·¨£¬ÐèÒª¼ÓÃܵÄÎļþ¿ìµÄ³¤¶ÈÒ²ÊǿɱäµÄ£»
¡¡¡¡DSA£¨Digital Signature Algorithm£©£ºÊý×ÖÇ©ÃûËã·¨£¬ÊÇÒ»ÖÖ±ê×¼µÄ DSS£¨Êý×ÖÇ©Ãû±ê×¼£©£»
¡¡¡¡AES£¨Advanced Encryption Standard£©£º¸ß¼¶¼ÓÃܱê×¼£¬ÊÇÏÂÒ»´úµÄ¼ÓÃÜËã·¨±ê×¼£¬Ëٶȿ죬°²È«¼¶±ð¸ß£¬Ä¿Ç° AES ±ê×¼µÄÒ»¸öʵÏÖÊÇ Rijndael Ëã·¨£»
¡¡¡¡BLOWFISH£¬ËüʹÓñ䳤µÄÃÜÔ¿£¬³¤¶È¿É´ï448룬ÔËÐÐËٶȺܿ죻
¡¡¡¡ÆäËüËã·¨£¬ÈçElGamal¡¢Deffie-Hellman¡¢ÐÂÐÍÍÖÔ²ÇúÏßËã·¨ECCµÈ¡£
¡¡¡¡2¡¢µ¥ÏòÉ¢ÁÐËã·¨
¡¡¡¡µ¥ÏòÉ¢Áк¯ÊýÒ»°ãÓÃÓÚ²úÉúÏûÏ¢ÕªÒª£¬ÃÜÔ¿¼ÓÃܵȣ¬³£¼ûµÄÓУº
¡¡¡¡MD5£¨Message Digest Algorithm 5£©£ºÊÇRSAÊý¾Ý°²È«¹«Ë¾¿ª·¢µÄÒ»ÖÖµ¥ÏòÉ¢ÁÐËã·¨£¬MD5±»¹ã·ºÊ¹Ó㬿ÉÒÔÓÃÀ´°Ñ²»Í¬³¤¶ÈµÄÊý¾Ý¿é½øÐаµÂëÔËËã³ÉÒ»¸ö128λµÄÊýÖµ£»
¡¡¡¡SHA£¨Secure Hash Algorithm£©ÕâÊÇÒ»ÖÖ½ÏеÄÉ¢ÁÐËã·¨£¬¿ÉÒÔ¶ÔÈÎÒⳤ¶ÈµÄÊý¾ÝÔËËãÉú³ÉÒ»¸ö160λµÄÊýÖµ£»
¡¡¡¡MAC£¨Message Authentication Code£©£ºÏûÏ¢ÈÏÖ¤´úÂ룬ÊÇÒ»ÖÖʹÓÃÃÜÔ¿µÄµ¥Ïòº¯Êý£¬¿ÉÒÔÓÃËüÃÇÔÚϵͳÉÏ»òÓû§Ö®¼äÈÏÖ¤Îļþ»òÏûÏ¢¡£HMAC£¨ÓÃÓÚÏûÏ¢ÈÏÖ¤µÄÃÜÔ¿É¢Áз¨£©¾ÍÊÇÕâÖÖº¯ÊýµÄÒ»¸öÀý×Ó¡£
¡¡¡¡CRC£¨Cyclic Redundancy Check£©£ºÑ»·ÈßÓàУÑéÂ룬CRCУÑéÓÉÓÚʵÏÖ¼òµ¥£¬¼ì´íÄÜÁ¦Ç¿£¬±»¹ã·ºÊ¹ÓÃÔÚ¸÷ÖÖÊý¾ÝУÑéÓ¦ÓÃÖС£Õ¼ÓÃϵͳ×ÊÔ´ÉÙ£¬ÓÃÈíÓ²¼þ¾ùÄÜʵÏÖ£¬ÊǽøÐÐÊý¾Ý´«Êä²î´í¼ì²âµØÒ»ÖֺܺõÄÊֶΣ¨CRC ²¢²»ÊÇÑϸñÒâÒåÉϵÄÉ¢ÁÐËã·¨£¬µ«ËüµÄ×÷ÓÃÓëÉ¢ÁÐËã·¨´óÖÂÏàͬ£¬ËùÒÔ¹éÓÚ´ËÀࣩ¡£
3¡¢ÆäËüÊý¾ÝËã·¨
¡¡¡¡ÆäËüÊý¾ÝËã·¨°üÀ¨Ò»Ð©³£ÓñàÂëËã·¨¼°ÆäÓëÃ÷ÎÄ£¨ASCII¡¢Unicode µÈ£©×ª»»µÈ£¬Èç Base 64¡¢Quoted Printable¡¢EBCDIC µÈ¡£
¡¡¡¡Ëã·¨µÄ .NET ʵÏÖ
¡¡¡¡³£¼ûµÄ¼ÓÃܺͱàÂëËã·¨¶¼ÒѾÔÚ .NET FrameworkÖеõ½ÁËʵÏÖ£¬Îª±àÂëÈËÔ±ÌṩÁ˼«´óµÄ±ãÀûÐÔ£¬ÊµÏÖÕâЩËã·¨µÄÃû³Æ¿Õ¼äÊÇ£ºSystem.Security.Cryptography.
¡¡¡¡System.Security.Cryptography ÃüÃû¿Õ¼äÌṩ¼ÓÃÜ·þÎñ£¬°üÀ¨°²È«µÄÊý¾Ý±àÂëºÍ½âÂ룬ÒÔ¼°Ðí¶àÆäËû²Ù×÷£¬ÀýÈçÉ¢Áз¨¡¢Ëæ»úÊý×ÖÉú³ÉºÍÏûÏ¢Éí·ÝÑéÖ¤¡£
¡¡¡¡System.Security.Cryptography ÊÇ°´ÈçÏ·½Ê½×éÖ¯µÄ£º
¡¡¡¡1¡¢Ë½Ô¿¼ÓÃÜ
¡¡¡¡Ë½Ô¿¼ÓÃÜÓÖ³ÆΪ¶Ô³Æ¼ÓÃÜ£¬ÒòΪͬһÃÜÔ¿¼ÈÓÃÓÚ¼ÓÃÜÓÖÓÃÓÚ½âÃÜ¡£Ë½Ô¿¼ÓÃÜËã·¨·Ç³£¿ì£¨Ó빫ԿËã·¨Ïà±È£©£¬ÌرðÊÊÓÃÓڶԽϴóµÄÊý¾ÝÁ÷Ö´ÐмÓÃÜת»»¡£
¡¡¡¡¡£NET Framework ÌṩÒÔÏÂʵÏÖ˽Կ¼ÓÃÜËã·¨µÄÀࣺ
¡¡¡¡DES£ºDESCryptoServiceProvider
¡¡¡¡RC2£ºRC2CryptoServiceProvider
¡¡¡¡Rijndael£¨AES£©£ºRijndaelManaged
¡¡¡¡3DES£ºTripleDESCryptoServiceProvider
¡¡¡¡2¡¢¹«Ô¿¼ÓÃܺÍÊý×ÖÇ©Ãû
¡¡¡¡¹«Ô¿¼ÓÃÜʹÓÃÒ»¸ö±ØÐë¶Ôδ¾ÊÚȨµÄÓû§±£ÃܵÄ˽ԿºÍÒ»¸ö¿ÉÒÔ¶ÔÈκÎÈ˹«¿ªµÄ¹«Ô¿¡£Óù«Ô¿¼ÓÃܵÄÊý¾ÝÖ»ÄÜÓÃ˽Կ½âÃÜ£¬¶øÓÃ˽ԿǩÃûµÄÊý¾ÝÖ»ÄÜÓù«Ô¿ÑéÖ¤¡£¹«Ô¿¿ÉÒÔ±»ÈκÎÈËʹÓ㻸ÃÃÜÔ¿ÓÃÓÚ¼ÓÃÜÒª·¢Ë͵½Ë½Ô¿³ÖÓÐÕßµÄÊý¾Ý¡£Á½¸öÃÜÔ¿¶ÔÓÚͨÐŻỰ¶¼ÊÇΨһµÄ¡£¹«Ô¿¼ÓÃÜËã·¨Ò²³ÆΪ²»¶Ô³ÆËã·¨£¬ÔÒòÊÇÐèÒªÓÃÒ»¸öÃÜÔ¿¼ÓÃÜÊý¾Ý¶øÐèÒªÓÃÁíÒ»¸öÃÜÔ¿À´½âÃÜÊý¾Ý¡£
¡¡¡¡¡£NET Framework ÌṩÒÔÏÂʵÏÖ¹«Ô¿¼ÓÃÜËã·¨µÄÀࣺ
¡¡¡¡DSA£ºDSACryptoServiceProvider
¡¡¡¡RSA£ºRSACryptoServiceProvider
¡¡¡¡3¡¢¹þÏ££¨Hash£©Öµ
¡¡¡¡¹þÏ£Ëã·¨½«ÈÎÒⳤ¶ÈµÄ¶þ½øÖÆÖµÓ³ÉäΪ¹Ì¶¨³¤¶ÈµÄ½ÏС¶þ½øÖÆÖµ£¬Õâ¸öСµÄ¶þ½øÖÆÖµ³ÆΪ¹þÏ£Öµ¡£¹þÏ£ÖµÊÇÒ»¶ÎÊý¾ÝΨһÇÒ¼«Æä½ô´ÕµÄÊýÖµ±íʾÐÎʽ¡£Èç¹ûÉ¢ÁÐÒ»¶ÎÃ÷ÎĶøÇÒÄÄÅÂÖ»¸ü¸Ä¸Ã¶ÎÂäµÄÒ»¸ö×Öĸ£¬ËæºóµÄ¹þÏ£¶¼½«²úÉú²»Í¬µÄÖµ¡£ÒªÕÒµ½É¢ÁÐΪͬһ¸öÖµµÄÁ½¸ö²»Í¬µÄÊäÈ룬ÔÚ¼ÆËãÉÏÊDz»¿ÉÄܵģ¬ËùÒÔÊý¾ÝµÄ¹þÏ£Öµ¿ÉÒÔ¼ìÑéÊý¾ÝµÄÍêÕûÐÔ¡£
¡¡¡¡¡£NET Framework ÌṩÒÔÏÂʵÏÖÊý×ÖÇ©ÃûËã·¨µÄÀࣺ
¡¡¡¡HMAC£ºHMACSHA1 £¨HMAC ΪһÖÖʹÓÃÃÜÔ¿µÄ Hash Ëã·¨£©
¡¡¡¡MAC£ºMACTripleDES
¡¡¡¡MD5£ºMD5CryptoServiceProvider
¡¡¡¡SHA1£ºSHA1Managed¡¢SHA256Managed¡¢SHA384Managed¡¢SHA512Managed
¡¡¡¡4¡¢Ëæ»úÊýÉú³É
¡¡¡¡¼ÓÃÜÃÜÔ¿ÐèÒª¾¡¿ÉÄܵØËæ»ú£¬ÒÔ±ãʹÉú³ÉµÄÃÜÔ¿ºÜÄÑÔÙÏÖ£¬ËùÒÔËæ»úÊýÉú³ÉÊÇÐí¶à¼ÓÃܲÙ×÷²»¿É·Ö¸îµÄ×é³É²¿·Ö¡£
¡¡¡¡ÔÚ .NET Framework ÖУ¬RNGCryptoServiceProvider ÊÇËæ»úÊýÉú³ÉÆ÷Ëã·¨µÄʵÏÖ£¬¶ÔÓÚÊý¾ÝËã·¨£¬¡£NET Framework ÔòÔÚÆäËüÃüÃû¿Õ¼äÖÐʵÏÖ£¬Èç Convert ÀàʵÏÖ Base 64 ±àÂ룬System.Text À´ÊµÏÖ±àÂ뷽ʽµÄת»»µÈ¡£
¡¡¡¡¼òµ¥µÄÀý³Ì£º
¡¡¡¡Ê×ÏÈÐèÒªÒýÓÃÃüÃû¿Õ¼äSystem.Security.Cryptography
¡¡¡