收藏
回答

java微信解密用户信息

https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/signature.html 小程序用户信息的解密代码,为啥不提供java 版本的

最后一次编辑于  2020-04-10
回答关注问题邀请回答
收藏

1 个回答

  • 夜孤行
    夜孤行
    2020-04-10

        public static JSONObject getUserInfo(String encryptedData, String sessionKey, String iv){

            // 被加密的数据

            byte[] dataByte = Base64.decode(encryptedData);

            // 加密秘钥

            byte[] keyByte = Base64.decode(sessionKey);

            // 偏移量

            byte[] ivByte = Base64.decode(iv);


            try {

                // 如果密钥不足16位,那么就补足.  这个if 中的内容很重要

                int base = 16;

                if (keyByte.length % base != 0) {

                    int groups = keyByte.length / base + (keyByte.length % base != 0 ? 1 : 0);

                    byte[] temp = new byte[groups * base];

                    Arrays.fill(temp, (byte) 0);

                    System.arraycopy(keyByte, 0, temp, 0, keyByte.length);

                    keyByte = temp;

                }

                // 初始化

                Security.addProvider(new BouncyCastleProvider());

                Cipher cipher = Cipher.getInstance("AES/CBC/PKCS7Padding","BC");

                SecretKeySpec spec = new SecretKeySpec(keyByte, "AES");

                AlgorithmParameters parameters = AlgorithmParameters.getInstance("AES");

                parameters.init(new IvParameterSpec(ivByte));

                cipher.init(Cipher.DECRYPT_MODE, spec, parameters);// 初始化

                byte[] resultByte = cipher.doFinal(dataByte);

                if (null != resultByte && resultByte.length > 0) {

                    String result = new String(resultByte, "UTF-8");

                    return JSONObject.parseObject(result);

                }

            } catch (Exception e) {

                e.printStackTrace();

            }

            return null;

        }

    2020-04-10
    有用 2
    回复 2
    • 夜孤行
      夜孤行
      2020-04-10
      这是参考的别人的解密,希望帮助到javaer
      2020-04-10
      回复
    • 夜孤行
      夜孤行
      2020-04-10
      如果有帮助,麻烦点下有用,让更多人看到,谢谢各位铁子
      2020-04-10
      回复
登录 后发表内容
问题标签