kpay签名 kp

kpay签名

0.00

★10次@

A:赛忞初雪

上架: 2025-01-18 11:52:30

         打开         
 

四方仙域传送阵         

簽名方法示例


Java & Android

代碼示例

import java.security.Signature; import java.security.spec.PKCS8EncodedKeySpec; import java.security.PrivateKey; import java.security.KeyFactory; public static String sha256WithRsaSign(String privateKeyText, String data) {     try {         PrivateKey privateKey;         KeyFactory keyFactory = KeyFactory.getInstance("RSA");         byte[] decode = Base64.decode(privateKeyText, Base64.NO_WRAP);         PKCS8EncodedKeySpec spec = new PKCS8EncodedKeySpec(decode);         privateKey = keyFactory.generatePrivate(spec);         Signature sign = Signature.getInstance("SHA256withRSA");         sign.initSign(privateKey);         sign.update(data.getBytes(StandardCharsets.UTF_8));         signed = sign.sign();     } catch (Exception e) {         return null;     }     return Base64.encodeToString(signed, Base64.NO_WRAP); }Copy to clipboardErrorCopied

Java Script

代碼示例

<script type="text/javascript" src="https://joolfe.github.io/postman-util-lib/dist/bundle.js"></script> function goSignature() {     var signatureText = method + "\n" + uri + "\n" + timestamp + "\n" + nonceStr + "\n" + body + "\n";;     var privKey = document.getElementById("key").value;     if (!privKey.startsWith('-----BEGIN PRIVATE KEY-----')) {         privKey = '-----BEGIN PRIVATE KEY-----' + privKey + '-----END PRIVATE KEY-----';     }     const sha256withrsa = new pmlib.rs.KJUR.crypto.Signature({"alg": "SHA256withRSA"});     sha256withrsa.init(privKey);     sha256withrsa.updateString(signatureText);     const signature = pmlib.rs.hextob64(sha256withrsa.sign()); } Copy to clipboardErrorCopied

.Net

代碼示例

var rsaUtils = new RsaUtils(); // 讀取證書 var privateKey = rsaUtils.getPrivateKeyFromPemFile("../../app_private_key_pkcs1.pem"); // 簽名 var signature = Base64.ToBase64String(rsaUtils.GenerateSignature(signatureContent, (RsaKeyParameters)privateKey.Private)); public class RsaUtils{     public enum RSASize     {         Size512 = 512,         Size1024 = 1024,         Size2048 = 2048     }     /// <summary>     /// Generate signature and return bytes     /// </summary>     /// <param name="sourceData">Data which you wanted to sign</param>     /// <param name="privateKey">Private key</param>     /// <returns>byte array</returns>     public byte[] GenerateSignature(string sourceData, RsaKeyParameters privateKey){         byte[] tmpSource = Encoding.ASCII.GetBytes(sourceData);         ISigner sign = SignerUtilities.GetSigner(PkcsObjectIdentifiers.Sha256WithRsaEncryption.Id);         sign.Init(true, privateKey);         sign.BlockUpdate(tmpSource, 0, tmpSource.Length);         return sign.GenerateSignature();     }     /// <summary>     /// Get private key object by RSA private key file data     /// </summary>     /// <param name="pemFilename">Pass fileName including path</param>     /// <returns></returns>     public AsymmetricCipherKeyPair getPrivateKeyFromPemFile(string pemFilename){         try         {             StreamReader fileStream = System.IO.File.OpenText(pemFilename);             PemReader pemReader = new PemReader(fileStream);             var ss = pemReader.ReadObject();             return (AsymmetricCipherKeyPair)ss;         }         catch (Exception ex)         {             return null;         }     } }


硬件app