zoukankan      html  css  js  c++  java
  • Java RSA (SHA1withRSA)签名和验签

    static {
        try {
            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("
    |
    ", "");
        } 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);
        }
    }
  • 相关阅读:
    Codeforces Round #498 (Div. 3) E. Military Problem
    codeforces ~ 1009 B Minimum Ternary String(超级恶心的思维题
    二叉排序树
    codeforces ~ 1004 C Sonya and Robots (dp)
    fragment shader的优化
    计算带宽
    trilinear filter
    GPU bubbles
    Dx12 occlusion query
    非意外的PDB错误 OK(0)
  • 原文地址:https://www.cnblogs.com/frankyou/p/8548492.html
Copyright © 2011-2022 走看看