① 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(也就是狗内算法)上,三言二语说不完…………