收藏
回答

授权获取用户手机号微信返回的encryptedData加密数据,java怎么解密呢?

前端在授权获取用户手机号之后,会得到一个encryptedData(加密数据),然后这串加密数据需要服务端去进行解密,服务端是java做的,想问一下各位哥哥有没有对应的样例呀,官方文档上提供的示例代码只有c++,node,php,python的

我在往上找了一些base64的解密方法试了也都乱码

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

2 个回答

  • Mr.Zhao
    Mr.Zhao
    2020-06-05
    public  String decrypt(String data, String key, String iv, String encodingFormat) {
        byte[] dataByte = Base64.decodeBase64(data.getBytes());
        byte[] keyByte = Base64.decodeBase64(key.getBytes());
        byte[] ivByte = Base64.decodeBase64(iv.getBytes());
        try {
            Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
            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) {
                return new String(resultByte, encodingFormat);
            }
            return null;
        } catch (Exception e) {
            e.printStackTrace();
        }
    
        return null;
    }
    
    2020-06-05
    有用 3
    回复 5
  • 2020-06-05

    www.baidu.com

    2020-06-05
    有用
    回复
登录 后发表内容
问题标签