收藏
回答

为什么jscode2session解密demo没有java的?

回答关注问题邀请回答
收藏

2 个回答

  • 阎小成
    阎小成
    2021-06-10

    奇怪的是我这总报pad block corrupted

    2021-06-10
    有用
    回复
  • ؞咬了你؞F࿆ū࿆t࿆ū࿆r࿆ē࿆
    ؞咬了你؞F࿆ū࿆t࿆ū࿆r࿆ē࿆
    2021-06-08

    java基本上github上能搜出一大堆大三方库帮你把整个流程都写好了。


    实在要demo,那就

    调用code2session之后的解密无非就是调用下Cipher

    通过code调用code2session获得的sessionKey,用户请求进来iv和encryptedData

    try {
      /* <dependency>
       *   <groupId>org.bouncycastle</groupId>
       *   <artifactId>bcprov-jdk16</artifactId>
       *   <version>1.46</version>
       * </dependency>
       */
      Cipher cipher = Cipher.getInstance("AES/CBC/PKCS7Padding", new BouncyCastleProvider());
      SecretKeySpec key = new SecretKeySpec(Base64.decode(sessionKey), "AES");
      IvParameterSpec ivParameterSpec = new IvParameterSpec(
              Base64.decode(iv)
      );
      cipher.init(Cipher.DECRYPT_MODE, key, ivParameterSpec);
      byte[] encryptedDataBytes = Base64.decode(encryptedData);
      byte[] result = cipher.doFinal(encryptedDataBytes);
      // 解密后的JSON
      String json = new String(result, "UTF-8");
      // 然后该干嘛干嘛
    } 
      catch (Exception e) {
      // ...
    }
    

    嗯,就酱紫。

    2021-06-08
    有用
    回复
登录 后发表内容