zl程序教程

您现在的位置是:首页 >  后端

当前栏目

Java RSA (SHA1withRSA)签名和验签详解编程语言

JAVA编程语言 详解 签名 rsa 和验
2023-06-13 09:20:45 时间
SIGNATURE = Signature.getInstance("SHA1withRSA", "BC"); } catch (NoSuchAlgorithmException | NoSuchPaddingException | NoSuchProviderException e) { throw Throwables.propagate(e); public static String getSignature(Map String, String map, String pfxPath, String pfxPasswd) { try { SIGNATURE.initSign(X509Certs.getPrivateKey(pfxPath, pfxPasswd).getPrivateKey()); SIGNATURE.update(DigestUtils.sha1Hex(buildReqParams(map, false)).getBytes(Charsets.UTF_8)); return Base64.encodeBase64String(SIGNATURE.sign()).replaceAll("/r|/n", ""); } catch (Throwable e) { throw Throwables.propagate(e); public static void verifySign(Map String, String map, String certPath) throws GatewayFrontException { try { byte[] sign = Base64.decodeBase64(map.get("signature").getBytes(Charsets.UTF_8)); map.remove("signature"); SIGNATURE.initVerify(X509Certs.getVerifyPublicKey(certPath)); SIGNATURE.update(DigestUtils.sha1Hex(ExPayUtil.buildReqParams(map, false)).getBytes(Charsets.UTF_8)); Preconditions.checkState(SIGNATURE.verify(sign), ExPayConstant.VERIFY_SIGNATURE_FAILUE); } catch (Exception e) { throw Throwables.propagate(e); }

 

15839.html

cgojava