Java工做流引擎关于数据加密流程(MD5数据加密防篡改)

关键字: 驰骋工做流程快速开发平台 工做流程管理系统 工做流引擎 asp.net工做流引擎 java工做流引擎. 开发者表单  拖拽式表单 工做流系统 流程数据加密  md5  数据保密流程数据防篡改软加密 java

适配数据库: oralce,mysql,sqlserver,Informix, PostgreSQL  达梦 mysql

up-87517fe5960f80d6e5c6cdf97b9982bb6d0.png
需求背景
对工做流引擎的数据加密研究, 流程数据的加密方案与实现过程.
1, 流程数据加密是为了防止流程数据被篡改的须要,从而形成对单位的没必要要损失。
2, 流程数据篡改是具备管理员身份与非法***者,尤为是防范业务人员与具备系统管理员结合作坏事情。
好比: xxx公司在xx年曾经出现过这样的状况, 业务人员与管理员勾结,致使单位200万元损失,虽然最后查出来,罚款判刑,可是这是过后处理.
3, 并不是全部的流程数据都须要加密, 好比请假流程就不须要,可是报销或者其它具备敏感数据的流程就须要了。
4, 被篡改后的数据须要警报,并写入log日志,还要不能被执行下去。
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, 打开工做轨迹时的流程数据时.
以上有任何不对地方,都要禁止打开并写入log的文本日志中.
对应的流程Demo:
\\流程树\\表单解决方案\\请假流程(轨迹模式) sql

相关文章
相关标签/搜索