支付宝的SRA数据签名验签

原创 2012年03月31日 10:19:00
    public static final String SIGN_ALGORITHMS = "SHA1WithRSA";

    public static String sign(String content, String privateKey) {
        String charset = "utf-8";
        try {
            PKCS8EncodedKeySpec priPKCS8 = new PKCS8EncodedKeySpec(
                    Base64.decode(privateKey));
            KeyFactory keyf = KeyFactory.getInstance("RSA");
            PrivateKey priKey = keyf.generatePrivate(priPKCS8);

            java.security.Signature signature = java.security.Signature
                    .getInstance(SIGN_ALGORITHMS);

            signature.initSign(priKey);
            signature.update(content.getBytes(charset));

            byte[] signed = signature.sign();

            return Base64.encode(signed);
        } catch (Exception e) {
            e.printStackTrace();
        }

        return null;
    }

    public static boolean doCheck(String content, String sign, String publicKey) {
        try {
            KeyFactory keyFactory = KeyFactory.getInstance("RSA");
            byte[] encodedKey = Base64.decode(publicKey);
            PublicKey pubKey = keyFactory
                    .generatePublic(new X509EncodedKeySpec(encodedKey));

            java.security.Signature signature = java.security.Signature
                    .getInstance(SIGN_ALGORITHMS);

            signature.initVerify(pubKey);
            signature.update(content.getBytes("utf-8"));

            boolean bverify = signature.verify(Base64.decode(sign));
            return bverify;

        } catch (Exception e) {
            e.printStackTrace();
        }

        return false;
    }
}

相关文章推荐

JAVA调用支付宝直充接口

JAVA调用支付宝的直充接口原理和银联接口一样,当商家和支付宝签好协议后就可以问支付宝的人要相关的代码了。我本地用的是支付宝UTF-8编码的代码,先把util里的东西达成一个alipay.jar文件。...
  • joliny
  • joliny
  • 2009年01月03日 00:31
  • 20508

JAVA版支付宝支付异步传输验证issi…

返回这个消息肯定是你公钥或者私钥有问题 注意一下几点问题: 1、手机端配置的公钥不是openssl生成的公钥,而是支付宝固定的,反生成的公钥在验证签名时返回false,其它验证都是true;  2...
  • lsfhack
  • lsfhack
  • 2017年04月08日 08:37
  • 88

支付宝RSA加密签名验签工具

  • 2017年07月27日 21:27
  • 28.24MB
  • 下载

支付宝APP支付-php后台签名以及验签

一、 下载php支付宝sdk https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.eCtVsf&treeId=54&arti...

支付宝之私钥签名公钥验签

8th,March,2016 Tuesday RSA公钥加密算法简介 非对称加密算法。只有短的RSA钥匙才可能被强力方式解破。到2008年为止,世界上还没有任何可靠的攻击RSA算法的方式。只要其钥...

使用ruby做支付宝的MD5、RSA签名和验签

md5签名验签支付宝的md5签名比较简单,就是拿到支付宝生成的key,加在原始字符串后面,然后一起做个md5运算就生成了需要的sign了,然后支付宝接收到请求,按照文档中同样的规则组装成一个字符串,末...
  • navyran
  • navyran
  • 2016年03月14日 22:02
  • 2061

支付宝_签名_Source

  • 2016年12月26日 17:23
  • 806KB
  • 下载

支付宝服务窗验证签名

支付宝数字签名工具

  • 2017年06月24日 17:40
  • 28.23MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:支付宝的SRA数据签名验签
举报原因:
原因补充:

(最多只允许输入30个字)