精华内容
下载资源
问答
  • 加签加密解密验签demo

    2020-06-04 10:52:43
    加签加密解密验签demo,参考博客说明。这个demo是加签加密发送给服务器,然后服务器解密验签得到请求。然后服务器加密加签,发给请求方,请求方验签解密
  • 21.flowable 加签 向前加签 向后加签

    千次阅读 热门讨论 2019-12-08 09:59:36
    项目地址:...加签:同时让多人处理任务 1、向前加签 任务在A这里,A这个时候需要BCD核对一下,等BCD核对之后又回到A这里 2、向后加签 任务在A这里,A这个时候需要BCD处理这个事情,处理完毕之后...

    项目地址:https://gitee.com/lwj/flowable.git 分支flowable-base
    视频讲解地址 https://www.bilibili.com/video/av78471660/

    加签:同时让多人处理任务
    1、向前加签
    任务在A这里,A这个时候需要BCD核对一下,等BCD核对之后又回到A这里
    2、向后加签
    任务在A这里,A这个时候需要BCD处理这个事情,处理完毕之后就不用管了,继续后面的审批环节

    实际情况中,我们应该只有一种加签比较合适,因为用户的使用的时候,如果是一排按钮的话,他自己都搞不清楚到底点击哪个了。我在实际的情况下是使用向后加签的。

    第一演示:

    在这里插入图片描述
    在这里插入图片描述


    代码分享


    1、加签的方法

    public ReturnVo<String> addSignTask(AddSignTaskVo addSignTaskVo, Boolean flag) {
            ReturnVo<String> returnVo = null;
            TaskEntityImpl taskEntity = (TaskEntityImpl) taskService.createTaskQuery().taskId(addSignTaskVo.getTaskId()).singleResult();
            //1.把当前的节点设置为空
            if (taskEntity != null) {
                //如果是加签再加签
                String parentTaskId = taskEntity.getParentTaskId();
                if (StringUtils.isBlank(parentTaskId)) {
                    taskEntity.setOwner(addSignTaskVo.getUserCode());
                    taskEntity.setAssignee(null);
                    taskEntity.setCountEnabled(true);
                    if (flag) {
                        taskEntity.setScopeType(FlowConstant.AFTER_ADDSIGN);
                    } else {
                        taskEntity.setScopeType(FlowConstant.BEFORE_ADDSIGN);
                    }
                    //1.2 设置任务为空执行者
                    taskService.saveTask(taskEntity);
                }
                //2.添加加签数据
                this.createSignSubTasks(addSignTaskVo, taskEntity);
                //3.添加审批意见
                String type = flag ? CommentTypeEnum.HJQ.toString() : CommentTypeEnum.QJQ.toString();
                this.addComment(addSignTaskVo.getTaskId(), addSignTaskVo.getUserCode(), addSignTaskVo.getProcessInstanceId(),
                        type, addSignTaskVo.getMessage());
                String message = flag ? "后加签成功" : "前加签成功";
                returnVo = new ReturnVo<>(ReturnCode.SUCCESS, message);
            } else {
                returnVo = new ReturnVo<>(ReturnCode.FAIL, "不存在任务实例,请确认!");
            }
            return returnVo;
        }
    

    2、审批环节处理

    //4.处理加签父任务
                        String parentTaskId = taskEntity.getParentTaskId();
                        if (StringUtils.isNotBlank(parentTaskId)) {
                            String tableName = managementService.getTableName(TaskEntity.class);
                            String sql = "select count(1) from " + tableName + " where PARENT_TASK_ID_=#{parentTaskId}";
                            long subTaskCount = taskService.createNativeTaskQuery().sql(sql).parameter("parentTaskId", parentTaskId).count();
                            if (subTaskCount == 0) {
                                Task task = taskService.createTaskQuery().taskId(parentTaskId).singleResult();
                                //处理前后加签的任务
                                taskService.resolveTask(parentTaskId);
                                if (FlowConstant.AFTER_ADDSIGN.equals(task.getScopeType())) {
                                    taskService.complete(parentTaskId);
                                }
                            }
                        }
    
    展开全文
  • 项目地址:...加签:同时让多人处理任务 1、向前加签 任务在A这里,A这个时候需要BCD核对一下,等BCD核对之后又回到A这里 2、向后加签 任务在A这里,A这个时候需要BCD处理这个事情,处理完毕之后...
    项目地址https://gitee.com/lwj/flowable.git
    代码分支flowable-base
    视频讲解地址https://www.bilibili.com/video/av78471660/
    用户名密码
    0000001test
    0000002test
    0000003test
    0000004test

    1. 场景分析

    加签:同时让多人处理任务
    1、向前加签
    任务在A这里,A这个时候需要BCD核对一下,等BCD核对之后又回到A这里
    2、向后加签
    任务在A这里,A这个时候需要BCD处理这个事情,处理完毕之后就不用管了,继续后面的审批环节

    实际情况中,我们应该只有一种加签比较合适,因为用户的使用的时候,如果是一排按钮的话,他自己都搞不清楚到底点击哪个了。我在实际的情况下是使用向后加签的。

    2. 演示:

    在这里插入图片描述
    在这里插入图片描述

    3. 代码分享

    3.1. 加签的方法

    public ReturnVo<String> addSignTask(AddSignTaskVo addSignTaskVo, Boolean flag) {
            ReturnVo<String> returnVo = null;
            TaskEntityImpl taskEntity = (TaskEntityImpl) taskService.createTaskQuery().taskId(addSignTaskVo.getTaskId()).singleResult();
            //1.把当前的节点设置为空
            if (taskEntity != null) {
                //如果是加签再加签
                String parentTaskId = taskEntity.getParentTaskId();
                if (StringUtils.isBlank(parentTaskId)) {
                    taskEntity.setOwner(addSignTaskVo.getUserCode());
                    taskEntity.setAssignee(null);
                    taskEntity.setCountEnabled(true);
                    if (flag) {
                        taskEntity.setScopeType(FlowConstant.AFTER_ADDSIGN);
                    } else {
                        taskEntity.setScopeType(FlowConstant.BEFORE_ADDSIGN);
                    }
                    //1.2 设置任务为空执行者
                    taskService.saveTask(taskEntity);
                }
                //2.添加加签数据
                this.createSignSubTasks(addSignTaskVo, taskEntity);
                //3.添加审批意见
                String type = flag ? CommentTypeEnum.HJQ.toString() : CommentTypeEnum.QJQ.toString();
                this.addComment(addSignTaskVo.getTaskId(), addSignTaskVo.getUserCode(), addSignTaskVo.getProcessInstanceId(),
                        type, addSignTaskVo.getMessage());
                String message = flag ? "后加签成功" : "前加签成功";
                returnVo = new ReturnVo<>(ReturnCode.SUCCESS, message);
            } else {
                returnVo = new ReturnVo<>(ReturnCode.FAIL, "不存在任务实例,请确认!");
            }
            return returnVo;
        }
    
    

    3.2. 审批环节处理

    //4.处理加签父任务
    String parentTaskId = taskEntity.getParentTaskId();
       if (StringUtils.isNotBlank(parentTaskId)) {
           String tableName = managementService.getTableName(TaskEntity.class);
           String sql = "select count(1) from " + tableName + " where PARENT_TASK_ID_=#{parentTaskId}";
           long subTaskCount = taskService.createNativeTaskQuery().sql(sql).parameter("parentTaskId", parentTaskId).count();
           if (subTaskCount == 0) {
               Task task = taskService.createTaskQuery().taskId(parentTaskId).singleResult();
               //处理前后加签的任务
               taskService.resolveTask(parentTaskId);
               if (FlowConstant.AFTER_ADDSIGN.equals(task.getScopeType())) {
                   taskService.complete(parentTaskId);
               }
           }
       }
    
    
    展开全文
  • 3,验证签名目前使用的UTF8格式,加签和验签必须保持统一,私钥加密,公钥解密。 4,静态库分release版本和debug版本 5,注意VC6.0中编译的使用的环境 MDd 还是MD 工程环境和静态库环境一直 6,本工程使用的库为:...
  • 海关179加签原理及加签步骤介绍

    千次阅读 2020-07-24 08:26:24
    海关179号公告对接,其中要用到一个usbkey加签数据上报,很多人多这个了解不够深入,导致对接困难,下面就加签原理进行阐述 1.为什么要用usbkey 法律责任,认定 2.加签原理 Sha1WithRsa 非对称加签 3.私钥加签公钥验证...

    大家知道,海关手续办完后,会给2个usbkey,
    一个是法人卡,一个是操作员卡,这两个卡操作权限不一样,这个操作员卡是用来对179报文进行数字签名的

    什么是数字签名

    所谓数字签名,采用的签名技术是,业界ATM机级别的加密技术,也是业内大名鼎鼎的非对称加密技术RSA
    普通的加密可分为几类
    格式加密:
    如base64加密,urlencode,
    算法公开,没有key,谁拿到密文都可以解密
    摘要算法
    md5,sha1,sha224,sha256,sha512等
    常用的是md5,
    这种就是计算摘要,使用这拿到原文后,通过摘要算法与摘要进行比较,如果相等则证明没有被篡改
    摘要就是不可逆,md5使用很多,比如压缩包就有文件的md5校验
    这个其实不算加密,因为无法解密
    这个算摘要验证,其中大名鼎鼎的比特币用的就是sha256摘要
    就是给出一个值的sha256摘要,然后挖矿者随机计算摘要值然后,对碰,如果碰到了就算你挖矿成功
    对称加密:
    des,3des,aes
    这种就是加密方和解密用的是同一个key
    加密方和解密方拿到的是同一把钥匙,只要拿到了钥匙就能打开密室
    看到密文
    非对称加密:
    RSA,这种是非对称性加密
    可以加解密,公钥加密,私钥解密
    也可私钥签名,公钥验签
    私钥是要自己保存的,要保存好, 公钥是可以随便给别人的
    也就是说如果加密传输的话
    双方都要有各自的私钥与公钥, 自己保留私钥,公钥给对方
    公钥有: 有普通公钥,有X509证书
    海关用的是x509证书
    加密方式有Sha1WithRsa,Sha256WithRsa
    海关用的是Sha1WithRsa

    为什么要加签

    机密性:通讯报文采用rsa算法加密,不可读,加密的消息只要收方能够解密
    防篡改:收方验证消息签名,能够发先任何更改
    防抵赖:收方收到到的消息签名由发方的私钥运算生成,其他人无法生成对应信息,法律责任,认定
    身份认证:收方能够解密信息,发方默认收方身份合法

    加签原理是什么

    海关采用的是Sha1WithRsa

    海关加签方式有三种:
    usbkey加签, 公服加签,加密机加签
    usbkey加签
    私钥及加密算法,刻录到usbkey硬件里了,
    私钥无法导出,视图导出私钥的请放弃这种想法
    这种usbkey需要用海关的专用软件来驱动,是用c++编写的,对外提供dll接口和webservice
    驱动是windows,只能在windows机器上使用
    公服加签,云加签
    这个上海有,
    其实是把usbkey里的文件刻在了光盘上,光盘是寄给公服平台,
    公服平台用光盘里的证书,来加签,具体实现形式不清楚
    加密机加签
    与usbkey类似,只是效率高一些

    怎么加签

    usbkey的话
    通过websocket服务器,wss: 61231,ws: 61232,加签
    通过调用dll方式加签,效率高一些,稳定性好一些
    加签的内容是179独有的格式字符串,海关对接会给例子,参照例子来就行,不同于其他总署报文的加签内容
    公服就是通过公服的接口加签,云加签

    展开全文
  • rsa加签验签

    2018-03-08 15:07:27
    因为工作需要,在项目中使用rsa验签,所以在网上找了找,因为要和java互通,所以网上找的都不能用,所以就自己改了...所有加签、加密返回结果都是base64的。 http://blog.csdn.net/u013608482/article/details/79484283
  • 安卓项目加签工具
  • 作者howoften,源码SM2,由于公司项目原因自学了下国密sm2使用,本demo包含sm2加密 解密, sm2加签 验签
  • spring框架中关于RSA sha-256加密解密,加签验签工具类
  • 中国电子口岸 海关IC卡远程加签小程序。 通过socket方式连接本地电子口岸加签服务和远程服务器。 远程调用 订单 清单 物流单加签
  • 主要介绍了Python3.7 基于 pycryptodome 的AES加密解密、RSA加密解密、加签验签,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下
  • 跨境电商海关加签

    2019-04-08 10:40:25
    跨境电商海关加签,需要插卡,不要用法人卡,用操作员卡
  • 加密解密与加签验签

    2020-06-09 10:32:51
    加签:发送方用一个哈希函数从报文文本中生成报文摘要(一般使用MD5算法:不可逆的加密算法),然后用自己的私人密钥对这个摘要进行加密,得到的就是这个报文对应的数字签名。通常来说,发送方会把数字签名和报文...

    定义:

    首先明确一个概念,公钥和私钥配对的,用公钥加密的文件,只有对应的私钥才能解密。当然也可以反过来,用私钥加密,用对应的公钥进行解密。

    加密:发送方利用接收方的公钥对要发送的明文进行加密。

    解密:接受方利用自己的私钥对加密文件进行解密。

    加签验签开始前,收发双方会提前交换彼此公钥

    加签:发送方用一个哈希函数从报文文本中生成报文摘要(一般使用MD5算法:不可逆的加密算法),然后用自己的私人密钥对这个摘要进行加密,得到的就是这个报文对应的数字签名。通常来说,发送方会把数字签名和报文原文一并发送给接受者。
    一般用到的算法如RSA(非对称加密算法/数字签名算法,这种加密算法的特点主要是密钥的变化,DES只有一个密钥。相当于只有一把钥匙,如果这把钥匙丢了,数据也就不安全了)

    验签:接收方得到原始报文和数字签名后,用同一个哈希函数从报文中生成摘要A,另外,用发送方提供的公钥对数字签名进行解密,得到摘要B,对比A和B是否相同,就可以得知报文有没有被篡改过。

    数字签名的作用:

    一是能确定消息确实是由发送方签名并发出来的,也就是验证发送的源头,因为别人假冒不了发送方的签名。
    二是数字签名能确定消息的完整性,也就是防篡改。

    存在的问题及解决方案(数字信封):

    很容易看得出来,数字签名技术有一个问题,就是原始报文是明文传输的,这对一些敏感内容来说通常是不合适的,所以有些时候,这两种技术会结合起来使用

    发送方用自己的私钥完成数字签名,然后再用接收方的公钥对报文进行加密,将数字签名和报文传送给接收方。
    接收方在拿到密文和数字签名后,先用自己的私钥对密文进行解密,得到明文,然后再用发送方提供的公钥进行验签,确保发送方身份的准确性,以及报文并没有被篡改过。

    大致流程:

    一、发送方(RSAwithSHA、RSAwithMD5):
    1.对传输的报文进行摘要,主要的算法有MD5和SHA
    2.对摘要用自己的私钥进行加密生成签名,一般用到的算法如RSA(非对称加密算法/数字签名算法,这种加密算法的特点主要是密钥的变化,DES只有一个密钥。相当于只有一把钥匙,如果这把钥匙丢了,数据也就不安全了)
    3.传输报文及签名

    二、接收方:
    1.对接收到的报文用同样的算法进行摘要
    2.用发送方的公钥对发送方的签名进行解密得到发送方的摘要
    3.对比两份摘要看是否有不同以验证是否被篡改

    补充AC业务中的加验签

    在国际超网中,公私钥主要用来做加验签。
    clientId是不同站点网关系统间进行通信的身份标识,如在EZ-Link与GN通信时,双方约定使用305XST7YSG0QCJ03263此clientId进行通信,则在双发收发的请求和响应报文头中clientId都为305XST7YSG0QCJ03263。
    两个站点准备互相通信前,会分别生成一对公私钥,然后交换彼此的公钥,并把自己的公私钥和对方公钥与clientId建立关联。
    一个站点给给对方发送请求或返回响应时,会使用clientId上绑定的己方私钥对报文内容(GN标准中还包含发送地址URL)进行加签,并将得到的签名信息放入报文头中。
    另一个站点接收到请求后,会使用clientId上绑定的对方公钥对签名进行解密,然后对比解密出的明文与报文内容是否一致,一致时说明此报文未被篡改。

    展开全文
  • activiti 工作流并行加签
  • 加密与加签的区别

    千次阅读 2019-07-21 21:39:42
    加签是私钥加签,公钥解签。 加密与加签作用场景的不同 前提 公钥与私钥是成对,所以一个公钥对应一个私钥,一个私钥也只能对应一个公钥——你能在多项式复杂度内找到一个私钥对应的多个公钥,那这种加密方法...
  • activity多实例任务加签

    千次阅读 2020-06-26 17:50:48
    加签是减签的相反的操作,加签与减签的思路刚好相反,减签是删数据;加签则是添加数据。在一些特殊场景下,需要在某个多实例节点上面动态新增一个审批人员或任务时,就需使用到activity多实例任务加签的功能 加签...
  • 数据加签加密

    千次阅读 2017-02-13 10:36:22
    /**  * RSA方式加签  *   * @param custId  * @param forEncryptionStr  * @param charset  * @return  * @throws Exception   */  public static String encryptByRSA(Str
  • 报文加签也可以这么简单
  • 招行一网通支付 加签验签工具类 提供给做支付的小伙伴
  • CA证书加签工具2019

    2019-08-13 18:58:47
    CA证书加签工具,2019年适应新的CA证书
  • RSA和MD5加解密和加签验签案例,使用TreeMap传参,适合对数据传输有安全性要求的开发者
  • 工作流后加签实现

    万次阅读 2017-10-25 21:54:43
    1、流程重新定义 动态改变流程指向,创建新的节点 2、后加签环节及后加签属性设置 流程持久化、克隆活动、独立CMD 3、原始流程操作及后加签...3、后加签活动支持操作:审批、改派、驳回、后加签、前加签 4、...
  • 关于加签

    千次阅读 2016-12-20 11:52:36
    1. 加签:用私钥加签,对方用公钥验签(防抵赖,私钥只有自己有!)  2. 加密:用对方公钥加密,对方用对应私钥解密(加密)  一般都是字符串转换成NSData ,然后在用各种加密,base64,des,3des,MD5等等(因为...
  • 国密SM2_SM3加密解密,加签验签操作C#源码,网络上很难找的资源,实现了密SM2_SM3加密解密,加签验签操作,.NET版
  • 下面小编就为大家带来一篇Java Http接口加签、验签操作方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 下面小编就为大家带来一篇php对接java现实加签验签的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • SHA256withRSA java常用的json加签验签工具类 SHA256withRSA 完美工具类 RSAUtils,包含: 1、签名 2、验签 3、公钥加密》私钥解密 4、私钥加密》公钥解密
  • 工作流加签实现

    2019-09-30 10:48:42
    如果要允许此步加签,则在步骤上配置加签按钮,工作流加签分为以下几种: 加签类型: 前加签:在当前任务的前面加签,如果选择此操作,则当前待办会消失,等待选择的加签人审批后才能办理当前任务。 后加签:即在...
  • jBPM4.4 会签(带加签、减签功能)

    热门讨论 2012-09-03 10:35:35
    jBPM4.4 会签(带加签、减签功能),通过查找资料,个人摸索,利用task节点实现了会签功能,加签、减签功能是我自己摸索出来的,是不是能满足大家的需求,仅供参考。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 688,748
精华内容 275,499
关键字:

加签