關鍵字: 馳騁工做流程快速開發平臺 工做流程管理系統 工做流引擎 asp.net工做流引擎 java工做流引擎. 開發者表單 拖拽式表單 工做流系統 流程數據加密 md5 數據保密流程數據防篡改軟加密 java
適配數據庫: oralce,mysql,sqlserver,Informix, PostgreSQL 達夢 mysql
需求背景
對工做流引擎的數據加密研究, 流程數據的加密方案與實現過程.
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