public abstract void
MD5HMAC(
int lFileID1, /*[ in]*/
int lFileID2, /*[ in]*/
byte pText[], /*[ in]*/
int lTextLen, /*[ in]*/
byte pDigest[] /*[out]*/
);这个是java的帮助文档
C#可以直接调用这个函数
但是实在不晓得参数怎么填
对pText[],加密为什么需要两个文件??
想了好久还是想不通
服务器是怎么保存密匙的
MD5HMAC(
int lFileID1, /*[ in]*/
int lFileID2, /*[ in]*/
byte pText[], /*[ in]*/
int lTextLen, /*[ in]*/
byte pDigest[] /*[out]*/
);这个是java的帮助文档
C#可以直接调用这个函数
但是实在不晓得参数怎么填
对pText[],加密为什么需要两个文件??
想了好久还是想不通
服务器是怎么保存密匙的
加密的内容好像是服务器产生的随机数,服务器那边使用密匙对这个随机数加密一次
在客户端这边收到没加密的随机数,在usbkey中使用加密算法加密一次
然后客户端把加密后的数字 发送到服务器,两个加密的是否相等,
用这个来判断是合法用户
你可以参考下这个业务流程:在发放Usbkey时会将它的编号与对应用户绑定,同时由服务器随机产生一个密钥,这个密钥同时保存在usbkey和服务器数据库中(与此usbkey编号对应);
使用时,如你所说“服务器那边使用密匙对这个随机数加密一次, 在客户端这边收到没加密的随机数,在usbkey中使用加密算法加密一次 然后客户端把加密后的数字 发送到服务器,两个加密的是否相等”
这里注意一点,服务器端要根据用户对应usbkey编号读取密钥,这样有助于增加安全性。