OPENSSL·þÎñ - °²È«ÐÅÏ¢´«Êä
¡¶OPENSSL·þÎñ - °²È«ÐÅÏ¢´«Êä¡·ÕªÒª£º Ëæ×żÆËã»úÍøÂç¼¼ÊõµÄ·¢Õ¹£¬·½±ã¿ì½ÝµÄ»¥Á¬ÍøÊ¹ÈËÃǽ¥½¥Ï°¹ßÁË´ÓWebÒ³ÉÏÊÕ·¢E-mail¡¢¹ºÎïºÍ½»Ò×£¬ÕâʱWebÒ³ÃæÉÏÐèÒª´«ÊäÖØÒª»òÃô¸ÐµÄÊý¾Ý£¬ÀýÈçÓû§µÄÒøÐÐÕÊ»§¡¢ÃÜÂëµÈ£¬ËùÒÔÍøÂ簲ȫ¾Í³ÉΪÏÖ´¡
¡¡¡¡ÏÖÐÐÍøÉÏÒøÐк͵ç×ÓÉÌÎñµÈ´óÐ͵ÄÍøÉϽ»Ò×ϵͳÆÕ±é²ÉÓÃHTTPºÍSSLÏà½áºÏµÄ·½Ê½¡£·þÎñÆ÷¶Ë²ÉÓÃÖ§³ÖSSLµÄWeb·þÎñÆ÷£¬Óû§¶Ë²ÉÓÃÖ§³ÖSSLµÄä¯ÀÀÆ÷ʵÏÖ°²È«Í¨ÐÅ¡£
¡¡¡¡SSLÊÇSecure Socket Layer£¨°²È«Ì×½Ó²ãÐÒ飩µÄËõд£¬¿ÉÒÔÔÚInternetÉÏÌá¹©ÃØÃÜÐÔ´«Êä¡£Netscape¹«Ë¾ÔÚÍÆ³öµÚÒ»¸öWebä¯ÀÀÆ÷µÄͬʱ£¬Ìá³öÁËSSLÐÒé±ê×¼,ĿǰÒÑÓÐ3.0°æ±¾¡£SSL²ÉÓù«¿ªÃÜÔ¿¼¼Êõ¡£ÆäÄ¿±êÊDZ£Ö¤Á½¸öÓ¦ÓüäͨÐŵı£ÃÜÐԺͿɿ¿ÐÔ,¿ÉÔÚ·þÎñÆ÷¶ËºÍÓû§¶ËͬʱʵÏÖÖ§³Ö¡£Ä¿Ç°£¬ÀûÓù«¿ªÃÜÔ¿¼¼ÊõµÄSSLÐÒ飬ÒѳÉΪInternetÉϱ£ÃÜͨѶµÄ¹¤Òµ±ê×¼¡£±¾ÎÄ×ÅÖØÔÚSSLÐÒéºÍSSL³ÌÐòÉè¼ÆÁ½·½ÃæÌ¸Ì¸×÷Õß¶ÔSSLµÄÀí½â¡£
Ò». SSLÐÒé³õ²½½éÉÜ
¡¡¡¡°²È«Ì×½Ó²ãÐÒéÄÜʹÓû§/·þÎñÆ÷Ó¦ÓÃÖ®¼äµÄͨÐŲ»±»¹¥»÷ÕßÇÔÌý£¬²¢ÇÒʼÖÕ¶Ô·þÎñÆ÷½øÐÐÈÏÖ¤£¬»¹¿ÉÑ¡Ôñ¶ÔÓû§½øÐÐÈÏÖ¤¡£SSLÐÒéÒªÇó½¨Á¢ÔÚ¿É¿¿µÄ´«Êä²ãÐÒé(TCP)Ö®ÉÏ¡£SSLÐÒéµÄÓÅÊÆÔÚÓÚËüÊÇÓëÓ¦ÓòãÐÒé¶ÀÁ¢Î޹ص쬏߲ãµÄÓ¦ÓòãÐÒé(ÀýÈ磺HTTP£¬FTP£¬TELNETµÈ)ÄÜ͸Ã÷µØ½¨Á¢ÓÚSSLÐÒéÖ®ÉÏ¡£SSLÐÒéÔÚÓ¦ÓòãÐÒéͨÐÅ֮ǰ¾ÍÒѾÍê³É¼ÓÃÜËã·¨¡¢Í¨ÐÅÃÜÔ¿µÄÐÉ̼°·þÎñÆ÷ÈÏÖ¤¹¤×÷¡£ÔÚ´ËÖ®ºóÓ¦ÓòãÐÒéËù´«Ë͵ÄÊý¾Ý¶¼»á±»¼ÓÃÜ£¬´Ó¶ø±£Ö¤Í¨ÐŵÄ˽ÃÜÐÔ¡£
¡¡¡¡Í¨¹ýÒÔÉÏÐðÊö£¬SSLÐÒéÌṩµÄ°²È«ÐŵÀÓÐÒÔÏÂÈý¸öÌØÐÔ£º
¡¡¡¡1) Êý¾ÝµÄ±£ÃÜÐÔ
¡¡¡¡ÐÅÏ¢¼ÓÃܾÍÊǰÑÃ÷ÂëµÄÊäÈëÎļþÓüÓÃÜË㷨ת»»³É¼ÓÃܵÄÎļþÒÔʵÏÖÊý¾ÝµÄ±£ÃÜ¡£¼ÓÃܵĹý³ÌÐèÒªÓõ½Ãܳ×À´¼ÓÃÜÊý¾ÝÈ»ºóÔÙ½âÃÜ¡£Ã»ÓÐÁËÃÜÔ¿£¬¾ÍÎÞ·¨½â¿ª¼ÓÃܵÄÊý¾Ý¡£Êý¾Ý¼ÓÃÜÖ®ºó£¬Ö»ÓÐÃܳ×ÒªÓÃÒ»¸ö°²È«µÄ·½·¨´«ËÍ¡£¼ÓÃܹýµÄÊý¾Ý¿ÉÒÔ¹«¿ªµØ´«ËÍ¡£
¡¡¡¡2) Êý¾ÝµÄÒ»ÖÂÐÔ
¡¡¡¡¼ÓÃÜÒ²Äܱ£Ö¤Êý¾ÝµÄÒ»ÖÂÐÔ¡£ÀýÈç:ÏûÏ¢ÑéÖ¤Â루MAC£©£¬Äܹ»Ð£ÑéÓû§ÌṩµÄ¼ÓÃÜÐÅÏ¢£¬½ÓÊÕÕß¿ÉÒÔÓÃMACÀ´Ð£Ñé¼ÓÃÜÊý¾Ý£¬±£Ö¤Êý¾ÝÔÚ´«Êä¹ý³ÌÖÐûÓб»´Û¸Ä¹ý¡£
¡¡¡¡3) °²È«ÑéÖ¤
¡¡¡¡¼ÓÃܵÄÁíÍâÒ»¸öÓÃ;ÊÇÓÃÀ´×÷Ϊ¸öÈ˵ıêʶ£¬Óû§µÄÃܳ׿ÉÒÔ×÷ΪËûµÄ°²È«ÑéÖ¤µÄ±êʶ¡£
SSLÊÇÀûÓù«¿ªÃÜÔ¿µÄ¼ÓÃܼ¼Êõ£¨RSA£©À´×÷ΪÓû§¶ËÓë·þÎñÆ÷¶ËÔÚ´«ËÍ»úÃÜ×ÊÁÏʱµÄ¼ÓÃÜͨѶж¨¡£Ä¿Ç°£¬´ó²¿·ÖµÄWeb ·þÎñÆ÷¼°ä¯ÀÀÆ÷¶¼¹ã·ºÖ§³ÖSSL ¼¼Êõ¡£µ±ä¯ÀÀÆ÷ÊÔͼÁ¬½ÓÒ»¸ö¾ßÓÐSSLÈÏÖ¤¼ÓÃܵķþÎñÆ÷ʱ,¾Í»á»½ÐÑÒ»¸öSSL»á»°,ä¯ÀÀÆ÷¼ì²éÈÏÖ¤,±ØÐë¾ß±¸ÏÂÃæÈý¸öÌõ¼þ:
¡¡¡¡1£©ÓÐÒ»¸öȨÍþ»ú¹¹·¢·ÅÖ¤Ê飬µ±È»¿ÉÒÔ´´½¨×ÔÎÒÇ©¶©µÄÖ¤Ê飨x509 ½á¹¹£©¡£
¡¡¡¡2£©Ö¤Êé²»ÄܹýÆÚ¡£
¡¡¡¡3£©Ö¤ÊéÊÇÊôÓÚËüËùÁ¬½ÓµÄ·þÎñÆ÷µÄ¡£
¡¡¡¡Ö»ÓÐÈ«²¿¾ß±¸ÁËÕâÈý¸öÌõ¼þ,ä¯ÀÀÆ÷²ÅÄܳɹ¦Íê³ÉÈÏÖ¤¡£Í¨¹ýÕâÈý¸öÌõ¼þ,Óû§ÄÜÈ·ÈÏÆää¯ÀÀÆ÷Á¬½Óµ½ÕýÈ·µÄ·þÎñÆ÷,¶ø²»ÊÇÁ¬½Óµ½Ò»Ð©ÏëµÁÈ¡Óû§ÃÜÂëµÈÖØÒªÐÅÏ¢µÄÐé¼ÙµÄ·þÎñÆ÷ÉÏ¡£
¡¡¡¡ÔÚµ±½ñµÄµç×ÓÉÌÎñÖл¹ÓÐÒ»Ïî±»¹ã·ºÊ¹ÓõݲȫÐÒéÊÇSETÐÒé¡£SET(Secure Electronic Transaction£¬°²È«µç×Ó½»Ò×)ÐÒéÊÇÓÉVISAºÍMasterCardÁ½´óÐÅÓÿ¨¹«Ë¾ÓÚ1997Äê5ÔÂÁªºÏÍÆ³öµÄ¹æ·¶¡£SETÄÜÔÚµç×Ó½»Ò×»·½ÚÉÏÌṩ¸ü´óµÄÐÅÈζȡ¢¸üÍêÕûµÄ½»Ò×ÐÅÏ¢¡¢¸ü¸ßµÄ°²È«ÐԺ͸üÉÙÊÜÆÛÕ©µÄ¿ÉÄÜÐÔ¡£SET½»Ò×·ÖÈý¸ö½×¶Î½øÐÐ:Óû§ÏòÉ̼ҹºÎﲢȷ¶¨Ö§¸¶;É̼ÒÓëÒøÐкËʵ;ÒøÐÐÏòÉ̼ÒÖ§¸¶»õ¿î¡£Ã¿¸ö½×¶Î¶¼Éæ¼°µ½RSA¶ÔÊý¾Ý¼ÓÃÜ£¬ÒÔ¼°RSAÊý×ÖÇ©Ãû¡£Ê¹ÓÃSETÐÒ飬ÔÚÒ»´Î½»Ò×ÖУ¬ÒªÍê³É¶à´Î¼ÓÃÜÓë½âÃܲÙ×÷£¬¹ÊÓкܸߵݲȫÐÔ£¬µ«SETÐÒé±ÈSSLÐÒ鸴ÔÓ£¬É̼ҺÍÒøÐж¼ÐèÒª¸ÄÔìϵͳÒÔʵÏÖ»¥²Ù×÷¡£
¡¡¡¡ÔÚLinux Ï£¬±È½ÏÁ÷ÐÐÖ§³ÖSSLÈÏÖ¤µÄÊÇOpenSSL·þÎñÆ÷¡£OpenSSLÏîÄ¿ÊÇÒ»¸öºÏ×÷µÄÏîÄ¿£¬¿ª·¢Ò»¸ö½¡×³µÄ¡¢ÉÌÒµµÈ¼¶µÄ¡¢ÍêÕûµÄ¿ª·ÅÔ´´úÂëµÄ¹¤¾ß°ü£¬ÓÃÇ¿´óµÄ¼ÓÃÜËã·¨À´ÊµÏÖ°²È«µÄSocket²ã£¨Secure Sockets Layer£¬SSL v2/v3£©ºÍ´«Êä²ãµÄ°²È«ÐÔ£¨Transport Layer Security£¬TLS v1£©¡£Õâ¸öÏîÄ¿ÊÇÓÉÈ«ÊÀ½çµÄÖ¾Ô¸Õß¹ÜÀíºÍ¿ª·¢OpenSSL¹¤¾ß°üºÍÏà¹ØÎĵµ¡£
¡¡¡¡ÈçºÎÔÚLinuxÏÂÅäÖÃOpenSSL·þÎñÆ÷£¬Ê×ÏÈ´ÓOpenSSLµÄÖ÷Ò³£¨http://www.openssl.org/£©ÉÏÏÂÔØopenssl-version.tar.gzÈí¼þ°üÀ´±àÒë°²×°£¬ÓëApache·þÎñÆ÷ÅäºÏ¿ÉÒÔ½¨Á¢Ö§³ÖSSLµÄWeb·þÎñÆ÷£¬²¢¿ÉÒÔʹÓÃ×ÔÎÒÇ©¶©µÄÖ¤Êé×öÈÏÖ¤£¬¹ØÓÚÈçºÎ±àÒë¡¢°²×°OpenSSL·þÎñÆ÷£¬¿ÉÒԲο¼Ò»ÏÂOpenSSL HOWTOÎĵµ¡£
¶þ. SSL ³ÌÐòÉè¼Æ³õ²½½éÉÜ
¡¡¡¡SSL ͨѶģÐÍΪ±ê×¼µÄC/S ½á¹¹£¬³ýÁËÔÚ TCP ²ãÖ®ÉϽøÐд«ÊäÖ®Í⣬ÓëÒ»°ãµÄͨѶûÓÐʲôÃ÷ÏÔµÄÇø±ð¡£ÔÚÕâÀÎÒÃÇÖ÷Òª½éÉÜÈçºÎʹÓÃOpenSSL½øÐа²È«Í¨Ñ¶µÄ³ÌÐòÉè¼Æ¡£¹ØÓÚOpenSSL µÄһЩÏêϸµÄÐÅÏ¢Çë²Î¿¼OpenSSLµÄ¹Ù·½Ö÷Ò³ http://www.openssl.org¡£
¡¡¡¡ÔÚʹÓÃOpenSSLǰ£¬±ØÐëÏȶÔOpenSSL ½øÐгõʼ»¯£¬ÒÔϵÄÈý¸öº¯ÊýÈÎÑ¡ÆäÒ»:
¡¡¡¡SSL_library_init(void);
¡¡¡¡OpenSSL_add_ssl_algorithms();
¡¡¡¡SSLeay_add_ssl_algorithms();
¡¡¡¡ÊÂʵÉÏ ºóÃæµÄÁ½¸öº¯ÊýÖ»ÊǵÚÒ»¸öº¯ÊýµÄºê¡£
¡¡¡¡Èç¹ûҪʹÓÃOpenSSLµÄ³ö´íÐÅÏ¢£¬Ê¹ÓÃSSL_load_error_strings (void)½øÐдíÎóÐÅÏ¢µÄ³õʼ»¯¡£ÒÔºó¿ÉÒÔʹÓÃvoid ERR_print_errors_fp(FILE *fp) ´òÓ¡SSLµÄ´íÎóÐÅÏ¢¡£
¡¡¡¡Ò»´ÎSSLÁ¬½Ó»á»°Ò»°ãÒªÏÈÉêÇëÒ»¸öSSL »·¾³£¬»ù±¾µÄ¹ý³ÌÊÇ£º
¡¡¡¡1. SSL_METHOD* meth = TLSv1_client_method(); ´´½¨±¾´Î»á»°Á¬½ÓËùʹÓõÄÐÒ飬Èç¹ûÊǿͻ§¶Ë¿ÉÒÔʹÓÃ
¡¡¡¡SSL_METHOD* TLSv1_client_method(void); TLSv1.0 ÐÒé
¡¡¡¡SSL_METHOD* SSLv2_client_method(void); SSLv2 ÐÒé
¡¡¡¡SSL_METHOD* SSLv3_client_method(void); SSLv3 ÐÒé
¡¡¡¡SSL_METHOD* SSLv23_client_method(void); SSLv2/v3 ÐÒé
¡¡¡¡·þÎñÆ÷ͬÑùÐèÒª´´½¨±¾´Î»á»°ËùʹÓõÄÐÒé:
¡¡¡¡SSL_METHOD *TLSv1_server_method(void);
¡¡¡¡SSL_METHOD *SSLv2_server_method(void);
¡¡¡¡SSL_METHOD *SSLv3_server_method(void);
¡¡¡¡SSL_METHOD *SSLv23_server_method(void);
¡¡¡¡ÐèҪעÒâµÄÊǿͻ§¶ËºÍ·þÎñÆ÷ÐèҪʹÓÃÏàͬµÄÐÒé¡£
¡¡¡¡2£®ÉêÇëSSL»á»°µÄ»·¾³ CTX£¬Ê¹Óò»Í¬µÄÐÒé½øÐлỰ£¬Æä»·¾³Ò²ÊDz»Í¬µÄ¡£ÉêÇëSSL»á»°»·¾³µÄOpenSSLº¯ÊýÊÇ
¡¡¡¡SSLK_CTX* SSL_CTX_new (SSL_METHOD*); ²ÎÊý¾ÍÊÇÇ°ÃæÎÒÃÇÉêÇëµÄ SSLͨѶ·½Ê½¡£·µ»Øµ±Ç°µÄSSL Á¬½Ó»·¾³µÄÖ¸Õë¡£
¡¡¡¡È»ºó¸ù¾Ý×Ô¼ºµÄÐèÒªÉèÖÃCTXµÄÊôÐÔ£¬µäÐ͵ÄÊÇÉèÖÃSSL ÎÕÊÖ½×¶ÎÖ¤ÊéµÄÑéÖ¤·½Ê½ºÍ¼ÓÔØ×Ô¼ºµÄÖ¤Êé¡£
void SSL_CTX_set_verify (SSL_CTX* , int , int* (int, X509_STORE_CTX*) )
ÉèÖÃÖ¤ÊéÑéÖ¤µÄ·½Ê½¡£
¡¡¡¡µÚÒ»¸ö²ÎÊýÊǵ±Ç°µÄCTX Ö¸Õ룬µÚ¶þ¸öÊÇÑéÖ¤·½Ê½£¬Èç¹ûÊÇÒªÑéÖ¤¶Ô·½µÄ»°£¬¾ÍʹÓà SSL_VERIFY_PEER¡£²»ÐèÒªµÄ»°£¬Ê¹ÓÃSSL_VERIFY_NONE.Ò»°ãÇé¿öÏ£¬¿Í»§¶ËÐèÒªÑéÖ¤¶Ô·½£¬¶ø·þÎñÆ÷²»ÐèÒª¡£µÚÈý¸ö²ÎÊýÊÇ´¦ÀíÑéÖ¤µÄ»Øµ÷º¯Êý£¬Èç¹ûûÓÐÌØÊâµÄÐèÒª£¬Ê¹ÓÿÕÖ¸Õë¾Í¿ÉÒÔÁË¡£
¡¡¡¡void SSL_CTX_load_verify_locations(SSL_CTX*, const char* , const char*);
¡¡¡¡¼ÓÔØÖ¤Êé:
¡¡¡¡µÚÒ»¸ö²ÎÊýͬÉÏ£¬²ÎÊý¶þÊÇÖ¤ÊéÎļþµÄÃû³Æ£¬²ÎÊýÈýÊÇÖ¤ÊéÎļþµÄ·¾¶;
¡¡¡¡int SSL_CTX_use_certificate_file(SSL_CTX *ctx, const char *file, int type);
¡¡¡¡¼ÓÔØ±¾µØµÄÖ¤Êé;type Ö¸Ã÷Ö¤ÊéÎļþµÄ½á¹¹ÀàÐÍ;ʧ°Ü·µ»Ø-1
¡¡¡¡int SSL_CTX_use_PrivateKey_file(SSL_CTX *ctx, const char *file, int type);
¡¡¡¡¼ÓÔØ×Ô¼ºµÄ˽Կ£»type ²ÎÊýÖ¸Ã÷˽ԿÎļþµÄ½á¹¹ÀàÐÍ£»Ê§°Ü·µ»Ø-1
¡¡¡¡¼ÓÔØÁËÖ¤ÊéºÍÎļþÖ®ºó£¬¾Í¿ÉÒÔÑé֤˽ԿºÍÖ¤ÊéÊÇ·ñÏà·û£º
¡¡¡¡BOOl SSL_CTX_check_private_key (SSL_CTX*);
¡¡¡¡3£®¼ÈÈ»SSL ʹÓÃTCP ÐÒ飬µ±È»ÐèÒª°ÑSSL attach µ½ÒѾÁ¬½ÓµÄÌ×½Ó×ÖÉÏÁË£º
¡¡¡¡SSL* SSL_new (SSL_CTX*); ÉêÇëÒ»¸öSSL Ì×½Ú×Ö£»
¡¡¡¡int SSL_set_rfd (SSL*); °ó¶¨Ö»¶ÁÌ×½Ó×Ö
¡¡¡¡int SSL_set_wfd (SSL*); °ó¶¨Ö»Ð´Ì×½Ó×Ö
¡¡¡¡int SSL_set_fd ( SSL*); °ó¶¨¶ÁдÌ×½Ó×Ö
¡¡¡¡°ó¶¨³É¹¦·µ»Ø 1£¬ ʧ°Ü·µ»Ø0;
¡¡¡¡4£®½ÓÏÂÀ´¾ÍÊÇSSL ÎÕÊֵ͝×÷ÁË
¡¡¡¡int SSL_connect (SSL*); ʧ°Ü·µ»Ø -1
¡¡¡¡5. ÎÕÊֳɹ¦Ö®ºó£¬¾Í¿ÉÒÔ½øÐÐͨѶÁË£¬Ê¹ÓÃSSL_read ºÍSS_write ¶ÁдSSL Ì×½Ó×Ö´úÌæ´«Í³µÄread ¡¢write:
¡¡¡¡int SSL_read (SSL *ssl, char *buf, int num );
¡¡¡¡int SSL_write (SSL *ssl, char *buf, int num);
¡¡¡¡Èç¹ûÊÇ·þÎñÆ÷£¬ÔòʹÓà SSL_accept ´úÌæ´«Í³µÄ accept µ÷ÓÃ
¡¡¡¡int SSL_accept(SSL *ssl);
¡¡¡¡6. ͨѶ½áÊø£¬ÐèÒªÊÍ·ÅÇ°ÃæÉêÇëµÄSSL×ÊÔ´
¡¡¡¡int SSL_shutdown(SSL *ssl); ¹Ø±ÕSSLÌ×½Ó×Ö;
¡¡¡¡void SSL_free (ssl); ÊÍ·ÅSSLÌ×½Ó×Ö;
¡¡¡¡void SSL_CTX_free (ctx); ÊÍ·ÅSSL»·¾³;
¡¡¡¡OpenSSL ËäÈ»ÒѾ·¢Õ¹µ½ÁË0.9.96°æ±¾£¬µ«ÊÇËüµÄÎĵµ»¹ºÜÉÙ£¬ÉõÖÁÁ¬×î»ù±¾µÄman º¯ÊýÊֲᶼûÓÐÍê³É¡£ËùÒÔ£¬±¾ÎĽô½ôÊǽ²ÊöÁËʹÓÃOpenSSL ½øÐгÌÐòÉè¼ÆµÄ¿ò¼Ü¡£¸ü¼ÓÏêϸµÄ×ÊÁÏ¿ÉÒԲο¼OpenSSL µÄÎĵµ»òÕß Apache mod_ssl µÄÎĵµ¡£
¡¡¡¡Í¨¹ýÒÔÉϵĽéÉÜ£¬ÎÒÏë¶ÁÕß¶ÔSSLÐÒéÒѾÓÐÁËÒ»¶¨µÄÁ˽⣬×÷ÕßÓлú»á½«»á¼ÌÐø¸ø´ó¼Ò½éÉÜSSLÐÒéµÄÆäËû·½ÃæµÄÄÚÈÝ¡£
ÉÏһƪ£ºÖ÷Á÷WEB·þÎñÆ÷±È½Ï(ÉÏ) ÏÂһƪ£ºApache ÐÔÄÜ×îÓÅ»¯·ÖÎö(ÉÏ)
Ïà¹ØÐÅÏ¢
- Ö÷Á÷WEB·þÎñÆ÷±È½Ï(ÉÏ)
- Apache ÐÔÄÜ×îÓÅ»¯·ÖÎö(ÉÏ)
- Ö÷Á÷WEB·þÎñÆ÷±È½Ï(ÏÂ)
- Apache ÐÔÄÜ×îÓÅ»¯·ÖÎö(ÏÂ)
- Apache·þÎñÆ÷¸ß¼¶ÉèÖÃÖ¸ÄÏ
- ÀûÓÃNT½¨Á¢WebÕ¾¼òÀúµã123
- ѧÓÃLotus°ì¹«¡ª¡ªDomino Web·þÎñÆ÷Ó¦
- °²È«Î¬»¤ IIS ASP Õ¾µãµÄ¸ß¼¶¼¼ÇÉ
- »ùÓÚApacheµÄWebÒ³Ãæ·ÃÎÊȨÏÞ¿ØÖÆ
- ʹsamba 2.0 ¼ÓÈëNTÓò
- ¹¹½¨°²È«µÄe-commerce·þÎñÆ÷
- ÀûÓÃJAVAÓïÑÔʵÏÖÖ§³ÖÊÓÆµµã²¥µÄWEB·þ
Ó²¼þ¹ÊÕÏרÌâ
¸ü¶àÍÆ¼ö
Èí¼þ¹ÊÕÏάÐÞ
¸ü¶à- ²¥·Å1080I ÀÏÓ¥ÀÖ¶Ó¸æ±ðÑÝ×à»áÓÐÀË¿»ò
- ¿ìËٺϲ¢200¸öExcel¹¤×÷²¾
- Excel±í¸ñÒ³ÂëÉèÖüòÆÓ´òÓ¡¸üÖ±¹Û
- ExcelÍêÃÀ¶³½áµÚÒ»Ðеļ¼ÇÉ
- MSI 9625 915GM PM740 ATI HD2400 1G D
- MPC HC H264 VC1 DXVA½âÂëÆ÷
- PD8 vc-1½âÂëÆ÷¿ÉÒÔÖ±½Óµ÷ÓÃ
- Excel¹¤×÷±íµÄ¸´ÖÆÓëÒÆ¶¯¼¼ÇÉչʾ
- tsMuxeR 1.7.4b ,ÓÐÐèÒªµÄ½øÀ´ÏÂÔØ
- ÇóÖú£¨ÒÑÉÏ´«½ØÍ¼£©£¡~SILUµÄ±äÐνð¸ÕH
