支付对接常用:关于asp rsa加密

        asp 算是老编程语言了吧,不支持RSA加密,ASP RSA类库基本上也很少见,好些支付平台也不提供asp支付demo,一方面是没有开源的ASP RSA加密类库,一方面是这种语言太古老了有些新特性不支持。

        但是有时候网站就是ASP语言开发的,不得不接入,常用的对接方式,就用asp.net或者php语言作为跳板,好些支付平台也是这样子实现的,提供asp支付demo,让的RSA加密部分是用.NET实现的,然后IIS导入dll,通过COM的方式实现。

        现在也有一种方案,不需要COM或者第三方桥接实现RSA加密,因为ASP本身就支持调用JS类库,可以用JS类库,因为JS有RSA加密的开源类库。

       实现代码如下,希望对大家接入有所帮助。

       ASP利用JAVASCRIPT 实现RSA加密和校验。

<script language="JavaScript" type="text/javascript" src="jsrsasign-all-min.js" runat="server"></script>
<script language="JavaScript" runat="server">
	function rsasignpublic(pubkey,plaintxt){
	  encHex = KJUR.crypto.Cipher.encrypt(plaintxt, KEYUTIL.getKey(pubkey), "RSA");
	  sign = hextob64(encHex); // 得到签名Hex,并转成base64string 
	 return sign;
	}
	
	function rsasignprivate(privatekey,plaintxt){

	  var sig = new KJUR.crypto.Signature({"alg": "SHA1withRSA", "prov": "cryptojs/jsrsa"}); // alg为MD5WithRSA,这个还有个常见的是SHA1WithRSA,不过貌似支付宝是用的MD5,所以我们公司用的也是MD5,也许java默认的就是这个格式。  
	 sig.init(KEYUTIL.getKey(privatekey));  // 设置key  
	  
	 sig.signString(plaintxt);  // 签名  
	  
	  sign = hextob64(sig.hSign);  // 得到签名Hex,并转成base64string 
	 return sign;
	}
	
	
	function verify(publickey,plaintxt,sigValueHex){
	
	          var sig = new KJUR.crypto.Signature({"alg": "SHA1withRSA", "prov": "cryptojs/jsrsa"}); // alg为MD5WithRSA,这个还有个常见的是SHA1WithRSA,不过貌似支付宝是用的MD5,所以我们公司用的也是MD5,也许java默认的就是这个格式。  
		sig.init(publickey);  // 设置key  
		sig.updateString(plaintxt);  // 签名  
	    
                return  sig.verify(b64tohex(sigValueHex));
	}
	
	
	
	
</script>

        那么这样子,ASP就很容易实现RSA加密了和校验了, ASP支付宝RSA加密,也就很容实现了。其他平台的RSA加密也就简单了

        这里需要一个JS类库

jsrsasign-all-min.js

资源下载地址

     https://download.csdn.net/download/weixin_38895490/10440076

      点击打开链


展开阅读全文

没有更多推荐了,返回首页