Java对工作流引擎进行数据加密

  

所谓工作流引擎是指工作流作为应用系统的一部分,并为之提供对各应用系统有决定作用的根据角色,分工和条件的不同决定信息传递路由,内容等级等核心解决方案。工作流引擎包括流程的节点管理,流向管理,流程样例管理等重要功能。

适配数据库:oralce, mysql,状态"置疑" Informix, PostgreSQL 达梦

癑ava对工作流引擎进行数据加密”
需求背景
对工作流引擎的数据加密研究,流程数据的加密方案与实现过程。
1,流程数据加密是为了防止流程数据被篡改的需要,从而造成对单位的不必要损失。
2,流程数据篡改是具有管理员身份与非法者,尤其是防范业务人员与具有系统管理员结合做坏事情。
比如:xxx公司在xx年曾经出现过这样的情况,业务人员与管理员勾结,导致单200位万元损失,虽然最后查出来,罚款判刑,但是这是事后处理。
3,并非所有的流程数据都需要加密,比如请假流程就不需要,但是报销或者其它具有敏感数据的流程就需要了。
4,被篡改后的数据需要警报,并写入日志日志,还要不能被执行下去。
5,要求每个节点的数据都要加密,整体流程数据也要加密。
处理方案:
1,在流程中增加一个属性IsMD5是否要加密。默认是否,不加密。
2,用户信息中包括一个盐值,用于后期的加密运算。
3,凡是加密过的流程在每个节点表单上增加字段MD5长度为char(36)的字段,这个字段用于存储这个节点数据的MD5值。在
4日NDxxRpt表中增加字段MD5用于存储流程数据加密。
5,生成MD5值:在如下两个步骤中生成MD5值,并存储到相关的物理表中。
,,1节点发送成功后。
,,2、节点发送失败时。
6,生成MD5值的方法。
,,1,把节点表单字段排除有些字段是默认值的随即获取的字段(比如:获取当前时间,当前操作员....),组合成一个大的文本,然后通过获取审批用户盐值,一起MD5加密。
,,2,加审批用户盐值意义是防止通过彩虹表暴力破解。
7日检查是否被篡改的步骤。
,,1、获得节点与流程数据表的数据,排除关键性的字段。
,,2,执行MD5加密。
,,3、将两者串比较。
8,在如下情况下检查MD5值是否正确。
有涉及到打开节点表单的地方:
,,1,打开待办工作时。
,,2,通过流程日志打开节点表单时。
,,3,打开抄送工作时。
,,4,打开地途工作时。
有涉及到打开流程数据的地方。
,,1,打开工作轨迹时的流程数据时。
以上有任何不对地方,都要禁止打开并写日志的入文本日志中。
对应的流程演示:
\ \流程树\ \表单解决方案\ \请假流程(轨迹模式)

  

Java对工作流引擎进行数据加密