海云 2022-01-16 18:09 采纳率: 0%
浏览 1124
已结题

微信jsapi支付v3版本获取商户私钥报错:Illegal base64 character 2e

微信支付v3版本获取商户私钥报错:Illegal base64 character 2e

Exception in thread "main" java.lang.IllegalArgumentException: Illegal base64 character 2e
    at java.util.Base64$Decoder.decode0(Base64.java:714)
    at java.util.Base64$Decoder.decode(Base64.java:526)
    at java.util.Base64$Decoder.decode(Base64.java:549)
    at com.wechat.pay.contrib.apache.httpclient.util.PemUtil.loadPrivateKey(PemUtil.java:31)
    at com.wechat.pay.contrib.apache.httpclient.util.PemUtil.loadPrivateKey(PemUtil.java:52)
    at com.weixin.WxPayUtils.main(WxPayUtils.java:92)

源代码:

/**
     * 获取私钥。
     *
     * @param filename 私钥文件路径 (required)
     * @return 私钥对象
     */
   public static PrivateKey getPrivateKey(String filename) throws IOException {

     String content = new String(Files.readAllBytes(Paths.get(filename)), "utf-8");
     System.out.println("content :"+content);
     try {
       String privateKey = content.replace("-----BEGIN PRIVATE KEY-----", "")
           .replace("-----END PRIVATE KEY-----", "")
           .replaceAll("\\s+", "");

       System.out.println("privateKey :"+privateKey);
       KeyFactory kf = KeyFactory.getInstance("RSA");
       return kf.generatePrivate(
           new PKCS8EncodedKeySpec(Base64.getDecoder().decode(privateKey)));
     } catch (NoSuchAlgorithmException e) {
       throw new RuntimeException("当前Java环境不支持RSA", e);
     } catch (InvalidKeySpecException e) {
       throw new RuntimeException("无效的密钥格式");
     }
   }

请教是哪里问题?

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 1月24日
    • 创建了问题 1月16日

    悬赏问题

    • ¥15 校内二手商品转让网站
    • ¥20 高德地图聚合图层MarkerCluster聚合多个点,但是ClusterData只有其中部分数据,原因应该是有经纬度重合的地方点,现在我想让ClusterData显示所有点的信息,如何实现?
    • ¥100 求Web版SPC控制图程序包调式
    • ¥20 指导如何跑通以下两个Github代码
    • ¥15 大家知道这个后备文件怎么删吗,为啥这些文件我只看到一份,没有后备呀
    • ¥15 C++为什么这个代码没报错运行不出来啊
    • ¥15 一道ban了很多东西的pyjail题
    • ¥15 关于#r语言#的问题:如何将生成的四幅图排在一起,且对变量的赋值进行更改,让组合的图漂亮、美观@(相关搜索:森林图)
    • ¥15 C++识别堆叠物体异常
    • ¥15 微软硬件驱动认证账号申请