1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using System.Runtime.InteropServices;
  5.  
  6. //class NT88API
  7. //{
  8. ////查找加密锁
  9. // [DllImport("NT88.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
  10. // public static extern int NTFindFirst(string NTCode);
  11.  
  12. ////查询硬件ID
  13. // [DllImport("NT88.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
  14. // public static extern int NTGetHardwareID(StringBuilder hardwareID);
  15.  
  16. ////登录加密锁
  17. // [DllImport("NT88.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
  18. // public static extern int NTLogin(string NTpassword);
  19.  
  20. ////存储区数据读取
  21. // [DllImport("NT88.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
  22. // public static extern int NTRead(int address, int Length, byte[] pData);
  23.  
  24. ////存储区数据写入
  25. // [DllImport("NT88.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
  26. // public static extern int NTWrite(int address, int Length, byte[] pData);
  27.  
  28. ////3DES解密
  29. // [DllImport("NT88.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
  30. // public static extern int NT3DESCBCDecrypt(byte[] vi, byte[] pDataBuffer, int Length);
  31.  
  32. ////3DES加密
  33. // [DllImport("NT88.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
  34. // public static extern int NT3DESCBCEncrypt(byte[] vi, byte[] pDataBuffer, int Length);
  35.  
  36. ////验证许可证
  37. // [DllImport("NT88.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
  38. // public static extern int NTCheckLicense(int licenseCode);
  39.  
  40. ////登出加密锁
  41. // [DllImport("NT88.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
  42. // public static extern int NTLogout();
  43.  
  44. // #region 管理员API
  45.  
  46. ////验证管理员密码
  47. // [DllImport("NT88.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
  48. // public static extern int NTCheckSuperPin(string superPin);
  49.  
  50. // #endregion
  51.  
  52. //}
  53.  
  54. class NT88API
  55. {
  56.  
  57. #region 管理员用法
  58. //查找所有加密锁,只有找到加密锁才能其他操作,NTFindAll必须第一个执行
  59. [DllImport("NT88Mgr.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
  60. public static extern int NTFindAll(int[] NTHandle, int[] nKeyNum);
  61.  
  62. /// <summary>
  63. /// 获取加密锁硬件属性
  64. /// </summary>
  65. /// <param name="NTHandle">加密锁handle</param>
  66. /// <param name="keyMode">加密锁型号</param>
  67. /// <param name="keyVersion">硬件版本</param>
  68. /// <param name="e2size">存储区大小</param>
  69. /// <param name="ramSize">内存区大小</param>
  70. /// <param name="prouctionTime">生产日期</param>
  71. /// <returns></returns>
  72. [DllImport("NT88Mgr.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
  73. public static extern int NTGetDevCaps(int NTHandle, int[] keyMode, int[] keyVersion, int[] e2size, int[] ramSize, byte[] prouctionTime);
  74.  
  75. //获取硬件序列号
  76. [DllImport("NT88Mgr.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
  77. public static extern int NTGetHarddwareID(int NTHandle, string hardwareID);
  78.  
  79. //检测管理密码
  80. [DllImport("NT88Mgr.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
  81. public static extern int NTCheckSuperPin(int NTHandle, string superin);
  82.  
  83. //修改加密锁管理密码
  84. [DllImport("NT88Mgr.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
  85. public static extern int NTSetSuperPin(int NTHandle, string newSPin);
  86.  
  87. //修改加密锁登录密码
  88. [DllImport("NT88Mgr.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
  89. public static extern int NTSetUserPin(int NTHandle, string superin, string seed, StringBuilder userPin);
  90.  
  91. //修改加密锁识别码
  92. [DllImport("NT88Mgr.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
  93. public static extern int NTSetAppName(int NTHandle, StringBuilder NTCode);
  94.  
  95. //获得加密锁识别码
  96. [DllImport("NT88Mgr.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
  97. public static extern int NTGetAppName(int NTHandle, StringBuilder NTCode);
  98.  
  99. //读取存储区数据
  100. [DllImport("NT88Mgr.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
  101. public static extern int NTRead(int NTHandle, int address, int length, byte[] pData);
  102.  
  103. //读写存储区数据
  104. [DllImport("NT88Mgr.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
  105. public static extern int NTWrite(int NTHandle, int address, int length, byte[] pData);
  106.  
  107. //获取许可证标识及验证码
  108. [DllImport("NT88Mgr.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
  109. public static extern int NTGetLicenseSettings(int NTHandle, byte[] licenseOption, int[] licenseCode, int licOptionNumber);
  110.  
  111. //设置许可证标识,同时计算出验证码
  112. [DllImport("NT88Mgr.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
  113. public static extern int NTGenLicenseCodes(int NTHandle, byte[] licenseOption, int[] licenseCode, int licOptionNumber);
  114.  
  115. //验证许可证,输入相应额验证码进行验证
  116. [DllImport("NT88Mgr.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
  117. public static extern int NTCheckLicense(int NTHandle, int licenseCode);
  118.  
  119. //3DES加密
  120. [DllImport("NT88Mgr.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
  121. public static extern int NT3DESCBCEncrypt(int NTHandle, byte[] iv, byte[] pDataBuffer, int length);
  122.  
  123. //3DES设置
  124. [DllImport("NT88Mgr.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
  125. public static extern int NTSet3DESKey(int NTHandle, byte[] key);
  126.  
  127. //3DES解密
  128. [DllImport("NT88Mgr.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
  129. public static extern int NT3DESCBCDecrypt(int NTHandle, byte[] iv, byte[] pDataBuffer, int length);
  130.  
  131. //查询硬件ID
  132. [DllImport("NT88Mgr.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
  133. public static extern int NTGetHardwareID(int NTHandle, StringBuilder hardwareID);
  134.  
  135. #endregion
  136.  
  137. /*****************************************/
  138.  
  139. #region 应用层
  140. //查找加密锁
  141. [DllImport("NT88.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
  142. public static extern int NTFindFirst(string NTCode);
  143.  
  144. //查询硬件ID
  145. [DllImport("NT88.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
  146. public static extern int NTGetHardwareID(StringBuilder hardwareID);
  147.  
  148. //登录加密锁
  149. [DllImport("NT88.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
  150. public static extern int NTLogin(string NTpassword);
  151.  
  152. //存储区数据读取
  153. [DllImport("NT88.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
  154. public static extern int NTRead(int address, int Length, byte[] pData);
  155.  
  156. //存储区数据写入
  157. [DllImport("NT88.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
  158. public static extern int NTWrite(int address, int Length, byte[] pData);
  159.  
  160. //3DES解密
  161. [DllImport("NT88.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
  162. public static extern int NT3DESCBCDecrypt(byte[] vi, byte[] pDataBuffer, int Length);
  163.  
  164. //3DES加密
  165. [DllImport("NT88.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
  166. public static extern int NT3DESCBCEncrypt(byte[] vi, byte[] pDataBuffer, int Length);
  167.  
  168. //验证许可证
  169. [DllImport("NT88.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
  170. public static extern int NTCheckLicense(int licenseCode);
  171.  
  172. //登出加密锁
  173. [DllImport("NT88.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
  174. public static extern int NTLogout();
  175.  
  176. #endregion
  177. }

加密狗的管理层API(C#代码)的更多相关文章

  1. 磐石加密狗NT88管理层API

    磐石加密狗NT88管理层API   直接贴代码了 1 using System; 2 using System.Collections.Generic; 3 using System.Text; 4 ...

  2. .Net中Web增加加密狗管理

    由于业务中最近需要使用到加密狗,增加对Web代码的管控,所以需要进行加密狗使用的研究 首先,对于没有接触使用过加密狗的人需要有个大致的认识,加密狗分为 MasterDog, 1.下载加密狗的开发套件, ...

  3. 支持Linux系统的加密狗

    深思数盾 https://www.sense.com.cn/ 产品:精锐5 版本:标准版.精灵版.IE版.时钟锁 快速实现高安全度的软件保护,轻松定义多种授权模式1.防止软件盗版,防止逆向工程 通过增 ...

  4. 使用USB Key(加密狗)实现身份认证

    首先你需要去买一个加密狗设备,加密狗是外形酷似U盘的一种硬件设备! 这里我使用的坚石诚信公司的ET99产品 公司项目需要实现一个功能,就是客户使用加密狗登录, 客户不想输入任何密码之类的东西,只需要插 ...

  5. 老王教您怎么做cass7.1 8.0 9.1所有系列的复制狗 加密狗 破解狗

    cass7.1 8.0 9.1所有系列的复制狗 加密狗 破解狗本来是出于好奇看到网上有这样的东西,学了下感觉挺简单的,如果你是cass的初学者想仅仅是想学习这个软件,不想花大价格购买正版的,这个是可以 ...

  6. 模拟美萍加密狗--Rockey2虚拟狗(二)

    按好了WDK,看了一天的DSF例子GenericHID,直接头大了,就能改个VID,PID让美萍识别成R2的狗.其他的什么各种描述符,根本无从下手,怪不得网上没有驱动模拟的加密狗,确实太复杂了,特别像 ...

  7. 模拟美萍加密狗--Rockey2虚拟狗(三)

    几经挣扎,我最终还是选择了虚拟设备的方法来模拟Rockey2加密狗.HID.DLL劫持+API劫持的办法技术上虽然简单些,但太繁琐了,不仅要转发大量的函数,还要Hook好几个API,向我这么懒的人可干 ...

  8. 模拟美萍加密狗--Rockey2虚拟狗(一)

    目录(?)[+]   最近受朋友之托做了一个美萍智能电源控制的插件.美萍茶楼从2010版开始支持智能电源控制设备,就是开单.结账时自动开关相应房间的电器,不过官方的设备是有线的.朋友的店已经开了一段时 ...

  9. 克隆Rockey6加密狗复制资料

    克隆Rockey6加密狗复制资料下载 描述:Rockey6加密狗复制克隆方法Rockey6加密狗复制案例解析! 一.用OD加载DLL,并分析: 10001320 >/$ B8 4C140000 ...

随机推荐

  1. iOS视频边下边播--缓存播放数据流

    实现视频边下边播,这里的边下边播不是单独开一个子线程去下载,而是把视频播放的数据给保存到本地.简而言之,就是使用一遍的流量,既播放了视频,也保存了视频. 用到的框架:<AVFoundation/ ...

  2. 的vim和emacs常用配置记录

    因为经常改变工作环境,所以在这里记录一下我的.vimrc文件和.emacs文件的内容. vimrc的配置文件,主要是设置语法高亮,和tab键的宽度,个人喜欢设置为4个空格的分量. " set ...

  3. RESTful API URI 设计的一些总结

    非常赞的四篇文章: Resource Naming Best Practices for Designing a Pragmatic RESTful API 撰写合格的 REST API JSON 风 ...

  4. Jquery 小技巧

    [每个程序员都会的35个jQuery的小技巧]收集的35个jQuery的小技巧/代码片段,可以帮你快速开发

  5. 10、代码块、构造代码块、静态代码块及main方法之间的关系

    1.普通代码块: 在方法或语句中出现在{}之间的类容就称为普通代码块,简称代码块.普通代码块和一般的语句执行顺序由他们在代码中出现的次序决定--“先出现先执行”,即顺序执行. /*下面第一个类时合法的 ...

  6. Yii rbac原理和实践

    Yii框架中集成分层的 RBAC,代码位于vendor\yiisoft\yii2\rbac中,rbac工作原理分为两部分,建立授权数据和进行权限检查. 如上,一个角色拥有某个权限,如果希望用户拥有这个 ...

  7. 由表单验证说起,关于在C#中尝试链式编程的实践

    在web开发中必不可少的会遇到表单验证的问题,为避免数据在写入到数据库时出现异常,一般比较安全的做法是前端会先做一次验证,通过后把数据提交到后端再验证一次,因为仅仅靠前端验证是不安全的,有太多的htt ...

  8. CAD打印线条太粗、线条颜色设置

    不管你是使用打印机,还是将CAD转换为PDF文件,如果出现以下情况,线条太粗,根本看不清楚,怎么解决呢? 或者,不想通过图层复杂.繁琐的设置,想将各种颜色线条的CAD全部打印成黑白,或者指定某一种颜色 ...

  9. Merge K Sorted Arrays

    This problem can be solved by using a heap. The time is O(nlog(n)). Given m arrays, the minimum elem ...

  10. rocketmq生产者部署的机器注意事项

    报错: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'warningP ...