µ±Ç°Î»ÖãºÊ×Ò³ > ÐÂÒ»´úÉÌ»§½ÓÈëÊÖ²áV2.7
http://www.ChinaPay.com ChinapayÐÂÒ»´úÉÌ»§½ÓÈëÊÖ²á
require 'SecssUtil.class.php';
$securityPropFile=\perties\
$paramArray=array(
\\\
\²âÊÔ-ÉÌÆ·ÐÅÏ¢\\\ AccessType\
\ MerBgUrl\\\\???\);
$secssUtil = new SecssUtil();
$secssUtil->init($securityPropFile); //³õʼ»¯°²È«¿Ø¼þ£º $secssUtil->verify($paramArray); if(\
echo\ÑéÇ©¹ý³Ì·¢Éú´íÎ󣬴íÎóÐÅϢΪ-->\ }
echo \Ñéǩͨ¹ý¡£\?
Ãô¸ÐÊý¾Ý¼ÓÃÜʾÀý´úÂë require 'SecssUtil.class.php';
$securityPropFile=\perties\
$plainData=\$secssUtil = new SecssUtil();
$secssUtil->init($securityPropFile); //³õʼ»¯°²È«¿Ø¼þ£º $secssUtil->encryptData ($plainData); if(\
echo\¼ÓÃܹý³Ì·¢Éú´íÎ󣬴íÎóÐÅϢΪ-->\ }
echo \¼ÓÃܺóµÄÃÜÎÄΪ£º\
?
ÃÜÂë¼ÓÃÜʾÀý´úÂë
require 'SecssUtil.class.php';
$securityPropFile=\perties\
$card=\$pin=\
µÚ 17 Ò³ ¹² 35 Ò³
return; return;
http://www.ChinaPay.com ChinapayÐÂÒ»´úÉÌ»§½ÓÈëÊÖ²á
$secssUtil = new SecssUtil();
$secssUtil->init($securityPropFile); //³õʼ»¯°²È«¿Ø¼þ£º $secssUtil->encryptPin($pin, $card); if(\
echo\ÃÜÂë¼ÓÃܹý³Ì·¢Éú´íÎ󣬴íÎóÐÅϢΪ-->\ }
echo \¼ÓÃܺóµÄPINÃÜÎÄΪ£º\?
ÎļþÑéǩʾÀý´úÂë
require ' SecssUtil.class.php';
$securityPropFile=\perties\
$secssUtil = new SecssUtil(); $secssUtil->init($securityPropFile);
$file=\²âÊÔÎļþ.txt\echo \$secssUtil->verifyFile($file); if(\
echo \ÎļþÑéÇ©³É¹¦£¬errcode=[\}else{
echo \ÎļþÑéǩʧ°Ü£¬errcode=[\}
echo \3.4.3
NetPayClient for .NETʹÓÃ˵Ã÷ return;
3.4.3.1 ºËÐÄÎļþÇåµ¥
Ãû ³Æ chinapaysecure.dll BouncyCastle.CryptoExt.dll Mer.pfx ·ÅÖõÄ·¾¶ ¸ù¾ÝÏîÄ¿¹¤³ÌµÄÐèÒª·ÅÖöÔӦ·¾¶Ï Óà ; ÓÃÓÚÌṩÉÌ»§Ç©Ãû¡¢ÑéÇ©¡¢¼ÓÃÜ¡¢½âÃܵȷ½·¨µ÷Óà ¸ù¾ÝÏîÄ¿¹¤³ÌµÄÐèÒª·ÅÖöÔӦ·¾¶Ï ÓÃÓÚÌṩÉÌ»§Ç©Ãû¡¢ÑéÇ©¡¢¼ÓÃÜ¡¢½âÃܵȷ½·¨µ÷Óà ¿ÉÒÔ·ÅÖõ½ÈÎÒâ·¾¶Ï£¬µ«ÊÇÐèÒªµ÷Ó÷½·¨Ö¸¶¨ÎļþλÖúÍÃû³Æ ÉÌ»§Ç©ÃûÖ¤Ê飨¿ØÌ¨ÉêÇ룩 cp.cer ¿ÉÒÔ·ÅÖõ½ÈÎÒâ·¾¶Ï£¬µ«ÊÇÐèÒªµ÷Ó÷½·¨Ö¸¶¨ÎļþλÖúÍÃû³Æ ChinaPayÇ©ÃûÖ¤Êé security.properties °²È«ÅäÖÃÎļþ£¬¸ù¾ÝÏîÄ¿¹¤³ÌµÄÐèÒª·ÅÖöÔӦ·¾¶Ï ָ¶¨Ç©ÃûÑéǩ֤ÊéÎļþ´æ·Å·¾¶µÈ µÚ 18 Ò³ ¹² 35 Ò³
http://www.ChinaPay.com ChinapayÐÂÒ»´úÉÌ»§½ÓÈëÊÖ²á
3.4.3.2 ·½·¨ËµÃ÷
·½·¨Ãû init sign getSign verify encryptData encryptPin getEncPin getEncValue getErrCode getErrMsg ÓÃ; ÓÃÓÚ´´½¨Ö¤Êé¶ÔÏ󣬳õʼ»¯°²È«¼ÓÃܿؼþ²¢³õʼ»¯¹«Ë½Ô¿ÐÅÏ¢ ÓÃÓÚ¶ÔÉÌ»§±¨ÎĽøÐÐÇ©Ãû »ñÈ¡ÉÌ»§Ç©ÃûºóÉú³ÉµÄ×Ö·û´® ÑéÖ¤chinapay·µ»ØµÄÓ¦´ðÊý¾Ý ¶Ô½»Ò×¹ý³ÌÖеÄÃô¸ÐÊý¾Ý½øÐмÓÃÜ ¶ÔÃÜÂë½øÐмÓÃÜ »ñÈ¡¼ÓÃܺóµÄÃÜÂë×Ö·û´® »ñÈ¡¼ÓÃܺóµÄÃÜÎÄ×Ö·û´® »ñÈ¡ÉÌ»§Ç©Ãû¡¢ÑéÇ©¡¢¼ÓÃܼ°½âÃܵĴ¦Àí½á¹û »ñÈ¡¶ÔÏìÓ¦ÂëµÄÖÐÎÄÃèÊö ?
³õʼ»¯°²È«¿Ø¼þ·½·¨£ºinit ·½·¨ËµÃ÷£º
public void init(string securityPropFile) ×÷Óãº
ÓÃÓÚ´´½¨Ö¤Êé¶ÔÏ󣬳õʼ»¯°²È«¼ÓÃܿؼþ²¢³õʼ»¯¹«Ë½Ô¿ÐÅÏ¢¡£
ʹÓô˷½·¨ÐèÒª½«security.properties·ÅÔÚ.NETÏîĿ·¾¶Ï£¬²¢ÅäÖÃÈçÏ£º #½»Ò×Ö¤Êé·¾¶
sign.file=D:/cert_cp/000000000000001.pfx #½»Ò×Ö¤ÊéÃÜÂë
sign.file.password=XXXXXX #½»Ò×Ö¤ÊéµÄÃÜÔ¿ÈÝÆ÷¸ñʽ sign.cert.type=PKCS12
#±¨ÎÄÖв»²ÎÓëÇ©ÃûµÄ×Ö¶ÎÃû³Æ£¬¶à¸ö×Ö¶ÎÓöººÅ½øÐзָô sign.invalid.fields=Signature,CertId #Ñéǩ֤Êé·¾¶
verify.file=D:/cert_cp/cp_test.cer #Ç©ÃûÖµ×Ö¶ÎÃû³Æ
signature.field=Signature ²ÎÊý˵Ã÷£º
securityPropFile£ºsecurity.propertiesÎļþȫ·¾¶
security.propertiesÎļþÖУ¬ÉÌ»§Ö»ÐèÒªÐÞ¸Äsign.file¡¢sign.file.password¡¢verify.fileÈýÏî¡£ ·µ»ØÖµ£º
true £º±íʾÕýÈ·³õʼ»¯Ö¤ÊéÎļþ,²¢ÇÒ¿ÉÒÔµ÷ÓÃÇ©Ãû·½·¨Ç©Ãû»òÕßÇ©ÃûÑéÖ¤·½·¨Ñé֤ǩÃû£» false£º±íʾ³õʼ»¯Ö¤ÊéÎļþʧ°Ü£¬²»¿ÉÒÔʹÓÃÇ©Ãû·½·¨ºÍÇ©ÃûÑéÖ¤·½·¨¡£ ?
¶©µ¥Ç©Ãû·½·¨£ºsign ·½·¨ËµÃ÷£º
public void sign((Hashtable srcMsg)
µÚ 19 Ò³ ¹² 35 Ò³
http://www.ChinaPay.com ChinapayÐÂÒ»´úÉÌ»§½ÓÈëÊÖ²á
×÷Óãº
ÓÃÓÚ¶ÔÉÌ»§±¨ÎĽøÐÐÇ©Ãû¡£ ²ÎÊý˵Ã÷£º
Hashtable srcMsgΪÉÌ»§½»Ò×Êý¾Ý¡£ ·µ»ØÖµ£º ÎÞ ?
»ñȡǩÃû½á¹û×Ö·û´®·½·¨£ºgetSign ·½·¨ËµÃ÷£º
public string getSign() ×÷Óãº
»ñÈ¡ÉÌ»§Ç©ÃûºóÉú³ÉµÄ×Ö·û´®¡£ ²ÎÊý˵Ã÷£º ÎÞ ·µ»ØÖµ£º
ÉÌ»§Ç©Ãû½á¹û×Ö·û´®¡£ ?
ÑéÖ¤½»Ò×Ó¦´ð·½·¨£ºverify ·½·¨ËµÃ÷£º
public void verify(Hashtable srcMsg) ×÷Óãº
ÑéÖ¤chinapay·µ»ØµÄÓ¦´ðÊý¾Ý¡£ ²ÎÊý˵Ã÷£º
srcMsg·µ»ØÉÌ»§±¨ÎÄÖеÄËùÓвÎÊý¡£ ·µ»ØÖµ£º ÎÞ ?
Ãô¸ÐÊý¾Ý¼ÓÃÜ·½·¨£ºencryptData ·½·¨ËµÃ÷£º
public void encryptData(string encContent) ×÷Óãº
¶Ô½»Ò×¹ý³ÌÖеÄÃô¸ÐÊý¾Ý½øÐмÓÃÜ¡£ ²ÎÊý˵Ã÷£º
encContent ´ý¼ÓÃܵÄÃ÷ÎÄ×Ö·û´® ·µ»ØÖµ£º ÎÞ ?
ÃÜÂë¼ÓÃÜ·½·¨£ºencryptPin ·½·¨ËµÃ÷£º
public void encryptPin(string aPin, string aCardNO) ×÷Óãº
¶ÔÃÜÂë½øÐмÓÃÜ¡£ ²ÎÊý˵Ã÷£º aPinÒøÐп¨ÃÜÂë aCardNO¿¨ºÅ ·µ»ØÖµ£º
µÚ 20 Ò³ ¹² 35 Ò³
¹²·ÖÏí92ƪÏà¹ØÎĵµ