开发者社区> 问答> 正文

注册事件回调“计算解密文字错误”

一般企业(没有使用ISV套件),我用的是注册回调接口
报错代码
类com.alibaba.dingtalk.openapi.demo.utils.aes.DingTalkEncryptor


方法private String decrypt(String text) throws DingTalkEncryptException {


报错行cipher.init(Cipher.DECRYPT_MODE, keySpec, iv);


错误信息“计算解密文字错误”

展开
收起
一直平凡购 2015-10-09 15:38:54 9432 0
3 条回答
写回答
取消 提交回答
  • Re注册事件回调“计算解密文字错误”
    是什么原因啊?是encodingAesKey 不正确吗???
    2016-01-22 10:57:28
    赞同 展开评论 打赏
  • Re注册事件回调“计算解密文字错误”
    解决了吗?  什么问题啊
    2015-11-04 15:00:01
    赞同 展开评论 打赏
  • Re注册事件回调“计算解密文字错误”
    aesKey = Base64.decodeBase64(encodingAesKey + "=");//这里encodingAesKey ="0323.....ooooppo"随意设置的一个43个字符的字符串,无特殊字符



    // 设置解密模式为AES的CBC模式
                Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding");
                SecretKeySpec keySpec = new SecretKeySpec(aesKey, "AES");
                IvParameterSpec iv = new IvParameterSpec(Arrays.copyOfRange(aesKey, 0, 16));
                cipher.init(Cipher.DECRYPT_MODE, keySpec, iv);
                // 使用BASE64对密文进行解码


    还没开始解密就已经报错了(初始化解密库报错)
    据我猜测,应该是缺包,求大神指点
    接下来的代码

    byte[] encrypted = Base64.decodeBase64(text);
                // 解密
                originalArr = cipher.doFinal(encrypted);

    -------------------------

    Re注册事件回调“计算解密文字错误”
    java.security.InvalidKeyException: Illegal key size
    原来是这个异常

    catch (Exception e) {
                throw new DingTalkEncryptException(DingTalkEncryptException.COMPUTE_DECRYPT_TEXT_ERROR);
            }
    大意了,官网有解决,先看看

    -------------------------

    Re注册事件回调“计算解密文字错误”
    继续抛异常errcode -2 “Cannot resolve field”
    再运行一次异常{"errcode":71006,"errmsg":"回调地址已经存在"}


    {"aes_key":".....qqqxyz","call_back_tag":["user_modify_org"],"errcode":0,"errmsg":"ok","token":"...............","url":"http://....../demo/isvreceive"}
    看来上次的异常还是成功注册了回调地址
    折算成功了么
    2015-10-09 16:00:52
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载