关键字:工作流程数据加密  md5  数据保密流程数据防篡改软加密
设置方式: 对工作流引擎的数据加密研究, 流程数据的加密方案与实现过程.

输入图片说明
需求背景
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: \流程树\表单解决方案\请假流程(轨迹模式)

最新文章

  1. 前端开发者进阶之函数柯里化Currying
  2. C++线程中packaged_tack
  3. H5游戏开发之Stick Hero
  4. java field, property,variable及getField和getDeclaredField的区别
  5. Node异步I/O、事件驱动与高性能服务器
  6. offsetleft、offsetTop、offsetParent的兼容性问题
  7. 让我们的svg起飞,兼容ie9的神器
  8. 一个基于和围绕Docker生态环境构建的早期项目列表
  9. 为什么老师不喜欢RelativeLayout
  10. C# volatile与lock
  11. ACM——2的n次方
  12. functools:管理函数工具(部分)
  13. 网页插入QQ 无需加好友
  14. Java进阶(十二)JDK版本错误之Unsupported major.minor version 51.0(jdk版本错误)
  15. 1.3 正则表达式和python语言-1.3.8 创建字符集([ ])
  16. 5. Go函数
  17. StringBuilder和+来串接字符串,时间的比较
  18. python使用SQLAlchemy模块连接MySQL
  19. js基础-对象
  20. AngularJs 指令中 的Scope属性

热门文章

  1. .NET开发设计模式-获取某个接口下面所有的派生类
  2. USB/GPIO/SDIO
  3. 数码相框(LCD、I2C)
  4. capwap学习笔记——初识capwap(一)(转)
  5. SVN使用指引(Windows)
  6. Linux时间子系统之(一):时间的基本概念
  7. Scrapy 1.4 文档 01 初窥 Scrapy
  8. composer安装以及更新问题,配置中国镜像源。
  9. 2101: Bake Off
  10. tkinter属性(总结)