kpay签名
0.00
★10次@
A:赛忞初雪
代碼示例
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
代碼示例
<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
代碼示例
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