生活随笔
收集整理的這篇文章主要介紹了
支付对接常用:关于asp rsa加密
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
????????asp 算是老編程語言了吧,不支持RSA加密,ASP RSA類庫基本上也很少見,好些支付平臺(tái)也不提供asp支付demo,一方面是沒有開源的ASP RSA加密類庫,一方面是這種語言太古老了有些新特性不支持。
????? ? 但是有時(shí)候網(wǎng)站就是ASP語言開發(fā)的,不得不接入,常用的對(duì)接方式,就用asp.net或者php語言作為跳板,好些支付平臺(tái)也是這樣子實(shí)現(xiàn)的,提供asp支付demo,讓的RSA加密部分是用.NET實(shí)現(xiàn)的,然后IIS導(dǎo)入dll,通過COM的方式實(shí)現(xiàn)。
? ? ? ? 現(xiàn)在也有一種方案,不需要COM或者第三方橋接實(shí)現(xiàn)RSA加密,因?yàn)锳SP本身就支持調(diào)用JS類庫,可以用JS類庫,因?yàn)镴S有RSA加密的開源類庫。
? ? ? ?實(shí)現(xiàn)代碼如下,希望對(duì)大家接入有所幫助。
????? ?ASP利用JAVASCRIPT 實(shí)現(xiàn)RSA加密和校驗(yàn)。
<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,并轉(zhuǎn)成base64string return sign;}function rsasignprivate(privatekey,plaintxt){var sig = new KJUR.crypto.Signature({"alg": "SHA1withRSA", "prov": "cryptojs/jsrsa"}); // alg為MD5WithRSA,這個(gè)還有個(gè)常見的是SHA1WithRSA,不過貌似支付寶是用的MD5,所以我們公司用的也是MD5,也許java默認(rèn)的就是這個(gè)格式。 sig.init(KEYUTIL.getKey(privatekey)); // 設(shè)置key sig.signString(plaintxt); // 簽名 sign = hextob64(sig.hSign); // 得到簽名Hex,并轉(zhuǎn)成base64string return sign;}function verify(publickey,plaintxt,sigValueHex){var sig = new KJUR.crypto.Signature({"alg": "SHA1withRSA", "prov": "cryptojs/jsrsa"}); // alg為MD5WithRSA,這個(gè)還有個(gè)常見的是SHA1WithRSA,不過貌似支付寶是用的MD5,所以我們公司用的也是MD5,也許java默認(rèn)的就是這個(gè)格式。 sig.init(publickey); // 設(shè)置key sig.updateString(plaintxt); // 簽名 return sig.verify(b64tohex(sigValueHex));}</script>
????????那么這樣子,ASP就很容易實(shí)現(xiàn)RSA加密了和校驗(yàn)了, ASP支付寶RSA加密,也就很容實(shí)現(xiàn)了。其他平臺(tái)的RSA加密也就簡單了
? ? ? ? 這里需要一個(gè)JS類庫
jsrsasign-all-min.js
資源下載地址
???? https://download.csdn.net/download/weixin_38895490/10440076
??????點(diǎn)擊打開鏈
總結(jié)
以上是生活随笔為你收集整理的支付对接常用:关于asp rsa加密的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。