OA加密狗實現方式: 第一步:建立加密狗DOGJava.dll(此加密狗驅動限金網OA系統中使用)驅動程序,放到系統系統盤符的winnt/system32下。 第二步:在登陸程序com.cmn.oa.pub.action.LoginAction類的login()方法中加入檢查是否有存在狗的代碼: 引入import com.cmn.oa.pub.dogcheck.GSDOG包; GSDOG dogCheck = new GSDOG();
if(dogCheck.DogCheck()!=0){ //System.out.println("NO DOG"); } else{ //System.out.println("Find DOG"); }
微狗DLL調用示例過程說明:
public native int DogCheck(); DogCheck( ) 函數檢測微狗是否存在。 返回值爲 0 表示成功,其它返回值表示檢測失敗。
public native int DogConvert(); DogConvert( )函數把一個字符串或一個數據發送給微狗,並接收從微狗返回 的變換結果。發送的數據由DogData指定,字節長度由DogBytes指定, 變換後的32位數據存入DogResult; 返回值爲 0 表示變換成功,其它返回值表示變換失敗。
* 注意: 存貯區的最後4字節對變換算法有影響。第196字節選擇算法,因此共有256種算 法。第197,198,199共三個字節,是每種算法的因子,有16,777,215種變化。
如果已經用DisableShare()禁止了共享,而發現有多臺機器共用一個狗, DogConvert()失敗。
public native int WriteDog(); WriteDog()函數把數據存入微狗存儲器中的用戶區。WriteDog()從DogAddr開 始的微狗用戶區空間寫入DogBytes個字節的數據,並把這些數據寫入DogData 指向的緩衝區。實際操作時將校驗密碼 DogPassword。 返回值爲 0 表示成功,其它返回值表示寫狗失敗。
* 注意: 存貯區的最後4字節對變換算法有影響。第196字節選擇算法,第197,198,199 共三個字節,是每種算法的因子。因此,在程序中最好不要寫存貯區的最後4字 節,除非您確實瞭解這樣做對變換結果影響。
如果已經用 DisableShare () 禁止了共享,而發現有多臺機器共用一個狗, WriteDog()失敗。
public native int ReadDog(); ReadDog()函數讀取微狗存儲器中用戶區的數據,用戶區的數據可由軟件開 發商寫入。ReadDog()從DogAddr開始的微狗用戶區空間讀取DogBytes個字 節的數據,實際操作時將校驗密碼DogPassword。 返回值爲 0 表示成功,其它返回值表示讀狗失敗。
如果已經用 DisableShare () 禁止了共享,而發現有多臺機器共用一個狗, ReadDog()失敗。
public native int DisableShare(); DisableShare()函數用來禁止多臺計算機通過並口共享器共享一個微狗。並口 共享器是一個第三方提供的設備,這種設備可以實現多臺計算機共享一個微狗。 這樣,一套加密軟件就可以在多臺計算機上運行了。微狗出廠時的缺省方式是 允許共享,但可以用 DisableShare 函數禁止共享。
DisableShare 隻影響 ReadDog, WriteDog, DogConvert。開發商如果想禁止共 享,只需要在調用 ReadDog, WriteDog, DogConvert之前先調用一次 DisableShare 即可。
* 注意: 請不要多次調用 DisableShare 函數,一個程序應當只調用一次 DisableShare 。
public native int GetCurrentNo(); 讀取微狗的流水號。每個狗都有一個唯一的流水號。即使是同號狗也一樣。 同號狗是指系列號相同,可互換使用。但流水號唯一,爲了讓開發商有管理加密軟 件的輔助手段。 流水號爲四字節長,得到的流水號放入DogResult中。 |
OA加密狗實現方式
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.