① C#做了一款網路版系統,現在要求加加密狗(深思洛克),如何操作,最好貼代碼,好用追加!!
:)
這是個不小的難題,因為深思洛克有幾種型號,而目前主推的當然是精銳IV和精銳E,都是智能狗,除了上位機代碼外,你還需要完成對應的下位機代碼(晶元內演算法,即Keil C51來寫狗內演算法)
這需要比較長的篇幅。
首先雹笑,因為C#只能寫託管類代碼,那麼對於加密狗只能使用調用介面的方式,這中悔一點可以通過下載對應的SDK來看到。
[DllImport(@"c:Sense4.dll")]
privatestaticexternuintS4Enum([MarshalAs(UnmanagedType.LPArray),Out]SENSE4_CONTEXT[]s4_context,refuintsize);
[DllImport(@"c:Sense4.dll")]
privatestaticexternuintS4Open(refSENSE4_CONTEXTs4_context);
[DllImport(@"c:Sense4.dll")]
(refSENSE4_CONTEXTs4_context);
[DllImport(@"c:Sense4.dll")]
(refSENSE4_CONTEXTs4Ctx,uintctlCode,byte[]inBuff,uintinBuffLen,byte[]outBuff,uintoutBuffLen,refuintBytesReturned);
[DllImport(@"c:Sense4.dll")]
(refSENSE4_CONTEXTs4Ctx,stringDirID,uintDirSize,uintFlags);
[DllImport(@"c:Sense4.dll")]賣肆正
(refSENSE4_CONTEXTs4Ctx,stringPath);
[DllImport(@"c:Sense4.dll")]
(refSENSE4_CONTEXTs4Ctx,stringDirID);
[DllImport(@"c:Sense4.dll")]
(refSENSE4_CONTEXTs4Ctx,byte[]Pin,uintPinLen,uintPinType);
[DllImport(@"c:Sense4.dll")]
(refSENSE4_CONTEXTs4Ctx,byte[]OldPin,uintOldPinLen,byte[]NewPin,uintNewPinLen,uintPinType);
[DllImport(@"c:Sense4.dll")]
(refSENSE4_CONTEXTs4Ctx,stringFileID,uintOffset,byte[]Buffer,uintBufferSize,uintFileSize,refuintBytesWritten,uintFlags,uintFileType);
[DllImport(@"c:Sense4.dll")]
(refSENSE4_CONTEXTs4Ctx,stringFileID,byte[]InBuffer,uintInbufferSize,byte[]OutBuffer,uintOutBufferSize,refuintBytesReturned);
通常我們只關心S4Enum,S4Open,S4Close,S4Control,S4ChangeDir,S4VerifyPin,S4Execute這幾個函數。
重頭線在KeilC51(也就是狗內演算法)上,三言二語說不完…………