按关键词阅读: 程序 语言 教程 编写 时钟 NOx
1、易语言编写龙脉NOX时钟锁程序教程有很多易语言用户希望使用加密狗对自己写的软件进行加密 , 但也担心加密狗调用太复杂不会用 , 或不适用易语言调用 , 或担心质量问题等 , 一直未能采用 。
实际上加密狗的使用是非常简单的 , 简单到只要你会API调用 , 基本上就会用了 。
加密狗的作用其实就在于易用性 , 不必为你的客户频繁更换电脑硬件而频繁找你更换注册码了 。
当然 , 加密狗的质量也要好 , 以保证不经常因加密狗损坏而更换 , 本次以龙脉加密狗为例 , 简单说一下NOX时钟加密锁的易语言编程方法 。
有的时候 , 你的软件只是授权使用期为一年时 , 第二年使用时还需要付费 , 就可以采用这种时钟加密锁 。
或先提供试用版 , 付费后才可以继续使用的软件等 , 也可采用 。
2、这种锁 。
一网址信息龙脉加密狗的官方网址:由北京世纪龙脉科技有限责任公司出品 。
二选择产品龙脉有以下几种产品:型号说明价格NOX单机锁易用型加密锁元只NOX时钟锁限制软件的使用时间和次数元只NOX2单机锁经济实用型加密锁元只DAM2+单机锁市场销售领先的加密锁元只还有两款网络型产品 , 大家自己看吧 。
本次采用的是上述列步中的第二种:NOX时钟锁 , 主要考虑到论坛上大家使用时钟加密的例程还不多 , 因此试用后与大家分享 。
产品拿到手后是深蓝色半透明的 , 图片如下图所示:随邮的还有一张光盘 , 一份用户卡内有订购号 , 包装盒的印刷还算精美 。
注意:下次订购时 , 要向客服说明订购号 , 客服处理后才会邮给你 , 以让你的加密狗与其他人 。
3、购买的加密狗完全不一样 , 达到每个人购买的狗都不会相同的目的 。
他们可以为用户定制彩色外壳 , 还可以为用户在加密狗上印定定制LOGO , 我觉得这点他们考虑还算周到 , 但就是批发量大时才行 , 而且需另收费 。
三调用DLL下面介绍的是用易语言直接调用龙脉NOX时钟型加密狗的DLL 。
1准备工作龙脉加密狗在使用之前最好设置一下密码 , 密码的设置规则是从高级到低级 , 即:超级密码用户密码应用程序标识 , 编程的时候要从低级到高级调用 , 即:应用程序标识用户密码 。
设置的方法也非常简单 , 插入加密狗 , 运行光盘中附带的管理工具 , 如下图所示:上图中的超级密码初始是多个F字母 , 需要您修改 , 可以随机生成 , 并且备份在你的一个文档中 。
注意:超级 。
4、密码不能公开 , 要机密保存 , 不可以写在程序代码中 , 这样就保证了你的加密狗与其他的加密狗之间的区别 。
2是否插上加密狗第一个实现的功能就是检查电脑上是否插入了这款龙脉加密狗 。
NoxFind的第一个参数是“应用程序标识” , 根据不同的应用程序 , NoxFind的第一个参数是不同的 , 需要运行光盘中的管理工具 , 修改你的“应用程序标识” , 初始是8个F , 即FFFFFFFF 。
插入加密狗 , 运行光盘中的管理工具 , 如下图所示:例如:可将“应用程序标识”改为:D655E5CB 。
上述“应用程序标识”是十六进制的 , 编程中要转换成十进制 。
程序中用到了一个“取十进制”的自定义子程序 , 代码如下:返回值NoxFind(取十进制(“D6 。
5、55E5CB”,0),handles,num).如果(返回值0)为0,操作成功!编辑框1.内容“成功,已找到加密狗!”到文本(返回值)“有”到文本(num)“只加密狗!”.否则编辑框1.内容“未找到加密狗,失败!”到文本(返回值)“”到文本(num)运行效果如下:上面的命令执行后 , 取得了一个加密狗句柄 , handles 。
NOX最大支持同时插8支USB加密狗 。
上面是根据“应用程序标识”进行的检查 , 因此如果你插入不同的8支加密狗 , 就会严格找到那只相符合的加密狗 。
你的软件的“应用程序标识”要与加密狗一一对应才行 , 也就是说 , 你写的程序中 , 所调用软件的“应用程序标识”与加密狗中写入的“应用程序标识”是一样 。
6、的 。
3打开Nox加密锁找到加密狗后还要先打开加密狗 , 以进一步操作 , NoxOpen函数的第2个参数使用到了“用户密码” , 也同样是在管理工具中设置 , 如下图所示:例如这里设置用户密码为“7D36FB2B76CC489F” , 然后直接填充在NoxOpen命令的第二个参数中 , 代码如下所示:返回值NoxOpen(handles1,“7D36FB2B76CC489F”)在找到加密锁后 , 可通过加密锁的Handle及正确的用户密码来打开加密锁 , 只有在正确打开加密锁后才可以进行其他读写等操作 。
4读加密锁中的记忆数据使用函数:long NoxReadStorage(long nKeyHandle, unsigned。
7、char * pBuffer );该函数用来读取加密锁掉电保持数据区(FLASH) , 在调用该函数之前 , 应该先分配最少16字节的存储数据的数据区 。
参数1:整数型,通过NOXFIND取得的加密锁句柄数组之一. in加密锁Handle参数2:字节型数组,16位长, Out 读取的结果存储在该参数所指定的数据区内 , NOX的掉电保持区的大小为16字节 , 因此在使用前应分配好合配大小的数据区以保证能够正确的容纳相应的数据 。
只有在执行打开加密锁代码之后 , 才可以调用该函数 。
掉电保持数据区:指关闭电脑后数据还存在于加密狗中 , 下次开电脑数据还存在 。
NOX加密狗在应用程序中只支持掉电保持数据区的读取 , 写入数据区应通过 。
8、设号工具来写入 。
例如:大家打开管理工具 , 写入“NOX时钟型加密狗” , 如下图所示:大家再运行易语言例程 , 读取一下 , 如下图所示:注意:上述代码中用到了“字节数据()”自定义子程序 , 用于将中文字符从字节型数组中恢复 。
5写临时内存数据使用函数:long NoxWriteMem(long nKeyHandle,unsigned char *pBuffer);该函数用来写入用户数据到加密锁内存数据区 , 其中的数据在关闭电脑后即消失 。
参数1:整数型 。
加密锁句柄,通过NOXFIND取得的加密锁句柄数.in加密锁Handle参数2:字节型数组,8位长,in将要写入的数据,最大8字节 。
内存区(几个字节)中的数据掉电 。
9、后即消失 , 也就是说关闭电脑后 , 数据将不再存在 , 只用于临时读取资料用 。
只有打开加密锁后才可以调用该函数 。
可用longNoxReadMem函数读出此数据 。
注意:现在有的破解组织推出了加密狗共享器 , 因此使用这个函数随机取得一个固定数或字符串 , 写到加密狗内存中 , 这样当客户用了加密狗共享器时 , 会检查到有一个不同的数或字符串 。
6读临时内存数据使用函数:long NoxReadMem(long nKeyHandle,unsigned char* pBuffer);该函数用来读取加密锁内存数据区 , 在调用该函数之前 , 应该先最少分配8字节大小的存取数据的数据区 。
参数1:整数型,加密锁句柄,通过NOXFIND取得的 。
10、加密锁句柄数.in加密锁Handle参数2:字节型数组,8位长,out读取的结果存储在该参数所指定的数据区内 , NOX内存区大小为8字节 , 在使用前应分配好合配大小的数据区以保证能够正确的容纳相应的数据 。
内存区(几个字节)中的数据掉电后即消失 。
也就是说关闭电脑后 , 数据将不再存在 , 只用于临时读取资料用 。
只有在打开加密锁后才可以调用该函数 。
读写运行如下图所示:7关闭加密狗使用函数:longNoxClose(longnKeyHandle);该函数用来关闭加密锁 , 加密锁在关闭后必须重新再次打开才可以进行其他读写的操作 。
参数1:整数型,加密锁句柄,通过NOXFIND取得的加密锁句柄.in加密锁Handle该 。
11、函数必须与NoxOpen成对使用 。
8取加密狗错误号使用函数:long NoxGetLastError();每个加密狗API函数都有一个返回值 , 通常返回值为0表示成功 , 返回值为1表示失败 , 当返回失败后 , 可返回错误码 , 如果想要知道错误码的具体信息 , 请从附录中进行查找 。
本命令没有参数 。
注意:该API获得最后一次操作的结果错误码 。
再次进行正确操作后取得的就是正错结果 。
注意:当加密狗被锁定后 , 由于不能打开读取里面的内容 , 可以用本函数判断 。
9取时间限制这款时钟锁一共有三种时间限制模式 , 如下图所示:时间限制模式必须在管理工具中设置 , 然后由你的程序调用API读出 。
使用函数:long NoxGetExpiryD 。
12、ateTime(long nKeyHandle,long *mode,long *endYear,long *endMonth,long *endDay,long *endHour,long *endMinute);该函数用于获得加密锁时间限制模式 , 及失效时间 。
参数1:整数型,加密锁句柄数组之一,通过NOXFIND取得的加密锁句柄.in加密锁Handle参数2:整数型,out加密锁当前时间限制模式,从1到3之间.参数3:整数型,out加密锁失效时间年参数4:整数型,out加密锁失效时间月参数5:整数型,out加密锁失效时间日参数6:整数型,out加密锁失效时间时参数7:整数型,out加密锁失效 。
13、时间分该函数必须在NoxFind之后使用 。
有时 , 你的客户可能会修改电脑的系统时间来躲避时间限制检查 , 因此可以在软件中设置检查网络时间来解决 。
或与次数限制配合使用更有安全性 。
10取运行次数限制这款时钟锁也可以对程序运行次数进行限制 , 需要在管理工具中设置 , 然后由你的程序调用API读出 。
如下图所示:使用函数:long NoxGetRemnantCount (long nKeyHandle , long *nRemain,long *nMax,long *mode);该函数用来获得加密锁运行次数限制及当前次数 。
参数1:整数型,加密锁句柄数组之一,通过NOXFIND取得的加密锁in加密锁Handle参数2: 。
14、整数型,out加密锁剩余运行次数参数3:整数型,out加密锁最大运行次数参数4:整数型,out次数限制模式:0:无限制1:有限制 , 最大次数为nMax该函数必须在NoxFind之后使用 。
建议:次数限制功能可与时间限制配合使用更增强安全性 。
11生成请求解锁文件当上述设置的时间过期或次数超过后 , 加密锁即无法打开 。
这时有两种办法解锁:一种是将加密锁邮回给你 , 由你通过管理工具及管理口令设置可继续使用;另一种就是用户生成一个请求解锁文件 , 请求解锁 , 然后你用管理工具 , 填入超级密码 , 读入请求文件 , 生成解锁文件 , 远程发给你的用户解锁 。
下面运行易语言加密锁例程 , 填写附加信息 , 也就是请求人的一些如名字 , 电话等信息; 。
15、再加上文件名 , 点击“生成加密锁限制解除请求文件”按钮后 , 提示写出成功 , 如下图所示:上述生成请求文件的功能由编程人员编写在程序代码中 , 客户运行时在软件中生成后 , 可以通过邮件发送给你 。
你收到后 , 就可以远程为用户解锁 。
使用函数:long NoxGenRequestFile(long nKeyHandle,char * szReqInfo,char * szReqFile);该函数用于生成加密锁限制解除请求文件 , 该文件将被发送给软件厂商并生成相应的解锁文件 。
参数1:整数型,加密锁句柄数组之一,通过NOXFIND取得的加密锁句柄.in加密锁Handle参数2:字节型数组 , in请求附加信息 , 可用于存储用户 。
16、信息(最大256字节) 。
允许软件厂商存储最大256字节的自定义的信息 , 比如 , 最终用户在生成解锁文件时 , 可以同时要求输入相应的用户信息 , 联系方式等等 , 软件厂商可以通过这些信息来对用户进行验证 。
参数3:文本型 , out生成的请求文件名及其全路径该函数在NoxFind之后使用 。
对应上面的请求文件 , 需要生成解锁文件发回给客户 。
需要用管理工具生成 , 下面就进入管理工具 , 将超级密码及请求文件路径填写清楚 , 然后点击“生成解锁文件”按钮 。
会提示是否成功的信息 。
如下图所示:通过点击“生成解锁文件”按钮后 , 就得到了解锁文件 。
下一步就是你要将这个文件发给你的用户 , 以解锁使用 。
这里你也可以继续设置 , 让他再只能使用一年或两 。
【语言|易语言编写龙脉NOX时钟锁程序教程】17、年 。
12读入解锁文件解锁由上述生成后的解锁文件后 , 发给你的用户 , 就可以远程进行解锁 , 好让软件继续可用 。
你在编辑中就需要用到解锁API函数 。
使用函数:long NoxUnlock(long nKeyHandle,char * szUnlockFile);软件厂商在生成解除加密锁限制文件后 , 将该文件通过电子邮件或其它任何方式发送给最终用户 , 在软件中要求最终用户输入该文件后调用NoxUnlock来解除或修改限制 。
参数1:整数型,加密锁句柄数组之一,通过NOXFIND取得的加密锁句柄.in加密锁Handle参数2:文本型 , in用于解除或修改加密锁时钟和次数限制的文件 , 该文件由NoxGenRequest 。
18、File生成的请求文件通过管理工具生成 。
该函数必须在NoxFind之后使用 。
以上NOX时钟锁的例程源码已提供 , 大家还是自己打开运行看一下吧 。
四发布软件如果你调用了DLL文件 , 那么在打包安装程序时 , 就需要带上DLL文件一起打包发布 。
注意:你在将加密狗邮给用户之前 , 最好将加密狗身上的激光编码抄下来 , 以免用户加密狗损坏时 , 邮回的不一定是你当初邮出的那只加密狗 。
五实用编程最后大家还是看看光盘中附带的每个命令的详解 , 以及一些加密的技巧 。
好了上面的介绍基本结束 , 但还只是初级的用法 , 在实际使用中 , 你可以将专业的资料存在加密狗中 , 必要时再读出来 , 呵呵 。
还有一些注意事项 , 如:不要使用明文作为密码或对比 , 直接用M 。
19、D5好了 , 对比是否加密成功也要隐藏地深一些哦 。
具体大家再看看易语言软件加密技术吧 , 易语言论坛上有 。
()附录:龙脉加密狗DLL指令说明一NOX时钟型加密锁介绍NOX时钟加密锁是北京世纪龙脉公司研发的一套先进的软件保护产品 , 它是连接在计算机USB端口的硬件设备 , 外形小巧 。
通过它可以保护该软件不被非法复制和非授权访问和使用 。
NOX时钟加密锁为标准的HID设备 , 无需安装驱动 , 操作系统直接支持 , 因此无需安装硬件驱动 , 直接连接到计算机的USB端口即可在程序中使用 , 省去安装硬件驱动所带来的兼容性的风险 。
NOX型加密锁内置16字节可读取掉电保持存储区和8字节内存区 , 掉电保持存储区支持写10万次 , 读取次数不限 ,。
20、因此用户应避免频繁进行写操作 , 可根据具体的使用环境来决定如何使用该存储区;NOX的内存区可任意读写 , 用户可用于在软件运行过程中存储一些用于随机检测的数据 , 该数据区在掉电后数据即丢失 。
NOX时钟加密锁支持三种时间限制模式 , 能够满足不同用户对试用/租赁软件时间限制的需求 , 并且使用简单 , 无需复杂的编程 。
NOX时间加密锁支持次数限制功能 , 可与时间限制配合使用更增强安全性 。
NOX时间加密锁的时间限制和次数限制均支持远程解除和修改 , 最终用户无需将锁寄回开发商处解除限制 , 减少运输成本 。
二NOX时钟锁基础知识1超级密码NOX的超级密码为一个32字节的字符串 , NOX自带了密码生成工具以保证每次生成的密码串是不同 。
21、的且是唯一的 , 在需要修改超级密码时请使用自带的密码生成工具来生成 。
超级密码具有最高权限 , 可以修改用户密码 , 修改掉电保持数据区等 , 该超级密码出厂设置默认为32个F(即“FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF”),软件厂商在分发NOX加密锁之前 , 可修改该密码 , 但应妥善保存该密码 , 如果尝试15次失败后 , 加密锁将自动锁死 , 此时必须重新插上重新进行操作 。
注意:超级密码由编程人员保密存放 , 不得泄露 。
不要将超级密码写在软件代码中或文档中提供给用户 , 从而保证其安全性 。
2用户密码NOX的用户密码为一个16字节的字符串 , 出厂设置默认为16个F , (即“FFFFFFFFFFFFFFFFF”) 。
22、 , NOX自带了密码生成工具可以保证每次生成的密码串是不同的且是唯一的 , 在修改用户密码时同时需要正确的超级密码 , 如果用户忘记了用户密码可以通过超级密码来重新设置 , 但是数据区的数据将同时恢复为F 。
用户密码用于打开加密锁并读取其中的数据 , 对于掉电保护存储区 , 用户密码只有读取权限 , 而不允许修改;对于内存区 , 用户密码正确后即可进行读写 。
用户密码将用于软件中对NOX进行相应的操作 。
用户密码错误三次后 , 加密锁自动锁死 , 需要拔下重新插上并重新运行软件 。
注意:用户密码会写在程序代码中 , 最好分散存放及采用异或等方法打乱隐藏 , 以防止破解者轻易找到破解 。
3应用程序标识该标识用于查找指定应用程序对应的加密锁 。
建议用户为 。
23、不同的应用程序设置不同的标识 。
软件厂商通过设号工具来修改应用程序标识 。
应用程序标识出厂设置为0xFFFFFFFF(即-1).4掉电保持数据区即加密锁内置的FLASH数据区 , 电脑关闭后数据不会丢失 , 用户可以对该数据区进行读写操作 , NOX提供16字节的掉电保持数据区 。
5内存区加密锁内置的为用户分配的内存区,可用于临时存放数据 , 电脑关闭后数据不保存 , NOX提供8字节的内存区 。
6唯一ID每个加密锁拥有硬件唯一ID , 并支持相应的API来读取ID 。
7加密锁句柄HANDLE加密锁HANDLE用于识别系统中的每个加密锁 , API操作需要通过HANDLE来指定是操作哪一个加密锁 。
通过调用NoxFind系列函数来获 。
24、得系统中所有的加密锁及Handle , 通过Handle来对指定的加密锁进行操作 。
注意:1Handle是动态的 , 每调用一次NoxFind , 加密锁的Handle就会重新分配 , 上次得到的Handle就不能再使用 。
2如果选择了时钟限制模式三或次数限制 , 由于每调用一次NoxFind加密锁会认为软件又重新启动一次 , 所以只能在软件启动时调用一次NoxFind 。
8加密锁时钟限制模式Nox时钟加密锁内置强大时钟限制功能 , 用户可根据不同的需要来对软件进行试用控制 。
该时钟锁内部提供了三种时钟控制模式 , 能满足大多数软件厂商对软件时钟限制的要求 , 如软件试用 , 软件租赁等 , 同时支持远程解除和修改限制 , 最终用户无需将锁寄回开发 。
25、商进行处理 。
9时钟限制模式一:指定时间后失效软件开发商在加密锁中设置软件的失效时间 , 当到达失效时间后软件无法使用 , 只有在解除或修改时间限制后才能继续使用 。
该模式适合于规定最终使用期限的软件 。
比如:软件开发商设置某软件在2008年8月8日8时8分失效 , 当到时该日期后软件将无法使用 , 最终用户可在失效之前或失效之后任意时该进行与软件开发商联系以解除限制 。
10时钟限制模式二:第一次使用后一段时间失效软件开发商可在加密锁中设置软件在每一次使用后多长时间失效 , 软件开发商无需考虑软件的出售时间 , 只需设置试用周期即可 , 加密锁会在第一次使用后自动计算出失效时间 , 当到达失效时间后软件无法使用 , 只有在解除或修改时间 。
26、限制后才能继续使用 。
该模式适合于试用期为固定时间段的软件 , 如30天 。
比如:软件开发商设置某软件在第一次使用后30天失效 , 如果用户第一次使用时为2008年1月1日 , 则当到2008年1月31时软件将无法使用 , 最终用户可在失效之前或失效之后任意时该进行与软件开发商联系以解除限制 。
11时钟限制模式三:限制软件连续工作周期软件开发商可在加密锁中设置软件每一次工作的最长时间段 , 当软件连续工作时间超过该时间段后失效 , 此时最终用户必须拔下加密锁重插 , 同时必须重新启动软件 , 如此反复 , 只有在解除或修改时间限制后才能正常使用 。
该模式适合对一些需要连续工作的软件 , 比如监控软件等等 。
比如:软件开发商设置某软件可连续工作 。
27、2小时失效 , 这样软件在运行2小时后自动失效 , 此时用户必须重新插上加密锁并重新启动软件来正常运行 。
最终用户随时与软件开发商联系以解除限制 。
12加密锁次数限制此加密锁支持次数限制 , 软件开发商可设置软件使用最大次数 , 当用户使用超过最大次数时 , 软件失效 , 最终用户可在失效之前或失效之后任意时该进行与软件开发商联系以解除限制 。
建议:次数限制功能可与时间限制配合使用更增强安全性 。
三NOX加密狗API手册下面列出了NOX所支持的所有应用程序API及详细说明 。
1NoxFind函数Long NoxFind(long nAppID,long * nKeyHandles,long * nKeyNum);Paramet 。
28、ersNappIDin应用程序标识NkeyHandlesout当前系统连接的所有NOX加密锁Handle数组 , NOX最大支持同时插8支 , 因此在调用该函数之前 , 应分配一个最少8个元素long型数组用来存储每一个加密锁的HandleNkeyNumout找到的NOX加密锁个数 , 如果没找到为0ReturnValue0成功 , nKeyHandles数组中中保存了所有加密锁Handle0失败 , 未找到 , 系统中未连接NOX加密锁 , 同时nKeyNum为0功能说明:long NoxFind(long nAppID,long *nKeyHandles,long*nKeyNum);查找系统中指定“应用程序标识”的所有N 。
29、OX时钟加密锁句柄Handle , 如果失败 , 则该系统未连接该NOX时钟加密锁 。
加密锁句柄Handle用来标识每一个加密锁 。
参数1:整数型,十进制数值,应用程序标识在设号工具中设置,并与第一个参数等同 。
参数2:整数型数组,8个数组成员.out当前系统连接的所有NOX加密锁Handle数组 , NOX最大支持同时插8支 , 因此在调用该函数之前 , 应分配一个最少8个元素long型数组用来存储每一个加密锁的Handle.参数3:整数型,返回加密锁个数,out找到的NOX加密锁个数 , 如果没找到为0NOXFind是首先需要调用的函数 , 调用成功后 , 本程序中所有加密锁的Handle都会重新分配 , 原有Handle自动失效 。
30、 , 因此如果在系统中需多次调用该函数 , 请记得先结束在原有Handle上的所有操作(可通过调用NoxClose) , 同时在以后的其它函数中使用新的Handle.“应用程序标识”在设号管理工具中设置 。
如果选择了时钟限制模式三或次数限制 , 由于每调用一次NoxFind加密锁会认为软件又重新启动一次 , 所以只能在软件启动时调用一次NoxFind 。
2NoxGetUID函数Long NoxGetUID(long nKeyHandle,char * uid);ParametersnKeyHandlein加密锁Handleuidout加密锁唯一ID字符串(32字符长度)ReturnValue0成功0失败 , 可使用Nox 。
31、GetLastError来获得错误码 。
使用说明:long NoxGetUID(long nKeyHandle,char * uid);每个NOX加密锁都有一个唯一ID , 该ID可以通过API读取 。
参数1:整数型,加密锁句柄,通过NOXFIND取得的加密锁句柄数组之一.in加密锁Handle参数2:字节型数组,32位,out加密锁唯一ID字符串(32字符长度)3NoxGetLastError函数Long NoxGetLastError();Parameters无ReturnValue最近一次操作的错误码 。
使用说明:long NoxGetLastError();每个API都有一个返回值 , 通常返回值为 。
32、0表示成功 , 返回值为1表示失败 , 当返回失败后 , 可以使用错误码API来获得具体错误原因 。
当API调用失败时 , 可使用该函数来获得失败具体原因 , 该函数只是返回错误码 , 如果想要知道错误码的具体信息 , 请从附录中进行查找 。
本命令没有参数 。
注意:该API获得最后一次操作的结果错误码4NoxOpen函数Long NoxOpen(long nKeyHandle,char * userPin);ParametersNKeyHandlein加密锁HandleUserPinin用户密码(通过设号工具进行设置)ReturnValue0成功,加密锁打开0失败 , 可使用NoxGetLastError来获得错误码 。
功能说明:l 。
33、ong NoxOpen(long nKeyHandle,char *userPin);在找到加密锁后 , 可通过加密锁的Handle及正确的用户密码来打开加密锁 , 只有在正确打开加密锁后才可以进行读写等操作 。
参数1:整数型,加密锁句柄,通过NOXFIND取得的加密锁句柄数组之一.in加密锁Handle参数2:文本型,用户密码,in用户密码(通过设号工具事先进行设置)该函数必须与NoxClose成对使用 。
5NoxClose函数Long NoxClose(long nKeyHandle);ParametersnKeyHandlein加密锁HandleReturnValue0成功,加密锁关闭0失败 , 可使用 。
34、NoxGetLastError来获得错误码 。
使用说明:long NoxClose(long nKeyHandle);该函数用来关闭加密锁 , 加密锁在关闭后必须重新再次打开才可以进行其他读写的操作 。
参数1:整数型,加密锁句柄,通过NOXFIND取得的加密锁句柄.in加密锁Handle该函数必须与NoxOpen成对使用 。
6NoxReadStorage函数Long NoxReadStorage(long nKeyHandle,unsigned char * pBuffer);ParametersnKeyHandlein加密锁HandlepBufferOut读取的结果存储在该参数所指定的数据区内 , NOX 。
35、的掉电保持区的大小为16字节 , 因此在使用前应分配好合配大小的数据区以保证能够正确的容纳相应的数据 。
ReturnValue0成功,加密锁读取成功 , 数据已保存到pBuffer中 。
0失败 , 可使用NoxGetLastError来获得错误码 。
使用说明:long NoxReadStorage(long nKeyHandle,unsigned char * pBuffer);该函数用来读取加密锁掉电保持数据区(FLASH) , 在调用该函数之前 , 应该先分配最少16字节的存储数据的数据区 。
参数1:整数型,加密锁句柄,通过NOXFIND取得的加密锁句柄数组之一.in加密锁Handle参数2:字节型数组,16位长,O 。
36、ut读取的结果存储在该参数所指定的数据区内 , NOX的掉电保持区的大小为16字节 , 因此在使用前应分配好合配大小的数据区以保证能够正确的容纳相应的数据 。
只有在打开加密锁之后 , 才可以调用该函数 。
掉电保持数据区:指关闭电脑后数据还存在于加密狗中,下次开电脑数据还存在 。
NOX在应用程序中只支持掉电保持数据区的读取 , 写入数据区应通过设号工具来写入 。
7NoxReadMem函数Long NoxReadMem(long nKeyHandle,unsigned char * pBuffer);ParametersnKeyHandlein加密锁HandlepBufferout读取的结果存储在该参数所指定的数据区内 ,。
37、NOX内存区大小为8字节 , 在使用前应分配好合配大小的数据区以保证能够正确的容纳相应的数据 。
ReturnValue0成功,加密锁读取成功 , 数据已保存到pBuffer中 。
0失败 , 可使用NoxGetLastError来获得错误码 。
使用说明:long NoxReadMem(long nKeyHandle,unsigned char *pBuffer);该函数用来读取加密锁内存数据区 , 在调用该函数之前 , 应该先最少分配8字节大小的存取数据的数据区 。
参数1:整数型,加密锁句柄,通过NOXFIND取得的加密锁句柄数.in加密锁Handle参数2:字节型数组,8位长,out读取的结果存储在该参数所指定的数据区内 。
38、 , NOX内存区大小为8字节 , 在使用前应分配好合配大小的数据区以保证能够正确的容纳相应的数据 。
内存区(几个字节)中的数据掉电后即消失 。
也就是说关闭电脑后,数据将不再存在,只用于临时读取资料用 。
只有在打开加密锁后才可以调用该函数 。
8NoxWriteMem函数Long NoxWriteMem(long nKeyHandle,unsigned char * pBuffer);ParametersNKeyHandlein加密锁HandlePBufferin将要写入的数据,最大8字节 。
ReturnValue0成功,加密锁写入成功 , 数据已保存到加密锁内存区中 。
0失败 , 可使用NoxGetLastError来获 。
39、得错误码 。
使用说明:long NoxWriteMem(long nKeyHandle,unsigned char * pBuffer);该函数用来写入用户数据到加密锁内存数据区,其中的数据在掉电后即消失 。
参数1:整数型,加密锁句柄,通过NOXFIND取得的加密锁句柄数.in加密锁Handle参数2:字节型数组,8位长,in将要写入的数据,最大8字节 。
内存区(几个字节)中的数据掉电后即消失 。
也就是说关闭电脑后,数据将不再存在,只用于临时读取资料用 。
只有打开加密锁后才可以调用该函数 。
9NoxGetExpiryDateTime函数Long NoxGetExpiryDateTime(long nKey 。
40、Handle,long * mode,long * endYear,long * endMonth,long * endDay,long * endHour,long * endMinute);
ParametersnKeyHandlein加密锁HandleModeout加密锁当前时间限制模式endYearout加密锁失效时间年EndMonthout加密锁失效时间月EndDayout加密锁失效时间日endHourout加密锁失效时间时endMinuteout加密锁失效时间分ReturnValue0成功,1失败 , 可使用NoxGetLastError来获得错误码 。
使用说明:Long NoxGetEx 。
41、piryDateTime(long nKeyHandle,long * mode,long * endYear,long * endMonth,long * endDay,long * endHour,long * endMinute);
该函数用于获得加密锁时间限制模式 , 及失效时间 。
参数1:整数型,加密锁句柄数组之一,通过NOXFIND取得的加密锁句柄.in加密锁Handle参数2:整数型,out加密锁当前时间限制模式,从1到3之间.参数3:整数型,out加密锁失效时间年参数4:整数型,out加密锁失效时间月参数5:整数型,out加密锁失效时间日参数6:整数型,out加密锁失效时间时参数7:整 。
42、数型,out加密锁失效时间分设置限置由实用工具完成 。
该函数必须在NoxFind之后使用 。
10NoxGetRemnantCount函数long NoxGetRemnantCount(long nKeyHandle,long * nRemain,long * nMax,long * mode);
ParametersKeyHandlein加密锁HandleNremainout加密锁剩余运行次数Nmaxout加密锁最大运行次数Modeout次数限制模式:0:无限制1:有限制 , 最大次数为nMaxReturnValue0成功1失败 , 可使用NoxGetLastError来获得错误码 。
使用说明:long No 。
43、xGetRemnantCount(long nKeyHandle,long * nRemain,long * nMax,long * mode);
该函数用来获得加密锁运行次数限制及当前次数 。
参数1:整数型,加密锁句柄数组之一,通过NOXFIND取得的加密锁in加密锁Handle参数2:整数型,out加密锁剩余运行次数参数3:整数型,out加密锁最大运行次数参数4:整数型,out次数限制模式:0:无限制1:有限制 , 最大次数为nMax该函数必须在NoxFind之后使用 。
11NoxGenRequestFile函数long NoxGenRequestFile(long nKeyHandle,char。
44、* szReqInfo,char * szReqFile);
ParametersnKeyHandlein加密锁HandleSzReqInfoin请求附加信息 , 可用于存储用户信息(最大256字节) 。
SzReqFileout生成的请求文件名及其全路径ReturnValue0成功,请求文件生成成功0失败 , 可使用NoxGetLastError来获得错误码 。
使用说明:long NoxGenRequestFile(long nKeyHandle,char * szReqInfo,char * szReqFile);
该函数用于生成加密锁限制解除请求文件 , 该文件将被发送给软件厂商并生成相应的解锁文件 。
参数1: 。
45、整数型,加密锁句柄数组之一,通过NOXFIND取得的加密锁句柄.in加密锁Handle参数2:字节型数组 , in请求附加信息 , 可用于存储用户信息(最大256字节) 。
允许软件厂商存储最大256字节的自定义的信息 , 比如 , 最终用户在生成解锁文件时 , 可以同时要求输入相应的用户信息 , 联系方式等等 , 软件厂商可以通过这些信息来对用户进行验证 。
参数3:文本型 , out生成的请求文件名及其全路径该函数在NoxFind之后使用 。
12NoxUnlock函数long NoxUnlock(long nKeyHandle,char * szUnlockFile);
ParametersNkeyHandlein加密锁Handle 。
46、SzUnlockFilein用于解除或修改加密锁时钟和次数限制的文件 , 该文件由NoxGenRequestFile生成的请求文件通过管理工具生成 。
ReturnValue0成功,解锁已成功 。
0失败 , 可使用NoxGetLastError来获得错误码 。
使用说明:long NoxUnlock(long nKeyHandle,char * szUnlockFile);
软件厂商在生成解除加密锁限制文件后 , 将该文件通过电子邮件或其它任何方式发送给最终用户 , 在软件中要求最终用户输入该文件后调用NoxUnlock来解除或修改限制 。
参数1:整数型,加密锁句柄数组之一,通过NOXFIND取得的加密锁句柄.in加密锁H 。
47、andle参数2:文本型 , in用于解除或修改加密锁时钟和次数限制的文件 , 该文件由NoxGenRequestFile生成的请求文件通过管理工具生成 。
该函数必须在NoxFind之后使用 。
四NOX应用程序API使用指南1调用过程NOX应用程序API的调用是有顺序的 , 软件厂商在软件中使用时应遵循该规则:2加密锁操作顺序在软件中使用应用程序API之前 , 应该使用NOX设号工具进行如下设置:1)设置加密锁超级用户密码2)设置用户密码3)设置应用程序标识4)设置加密锁掉电保持数据区5)设置加密锁时间限制及次数限制3在应用程序中一般编程过程:第一步:找到电脑上连接的加密锁并得到每个加密锁的Handle,这些通过 。
48、加密锁查找API来操作:NoxFind第二步:通过Handle及用户密码打开指定加密锁(NoxOpen)第三步:加密锁打开后 , 即可进行如下操作:读掉电保护存储区(NoxReadStorage)读写内存区(NoxReadMem , NoxWriteMem);第四步:完成所有加密锁操作后关闭加密锁(NoxClose) 。
在以上的操作过程中 , 调用失败时可以使用NoxGetLastError来得到出错的原因 。
4当用户决定购买正式版软件时 , 需要进行如下三步:1)生成解锁请求文件(NoxGenRequestFile);2)将生成的解锁文件发送给开发商;3)开发商确认该请求文件并生成相应的解除文件(通过管理工具) 。
49、;4)开发商将解除文件发送给最终用户;5)最终用户使用解锁文件解除限制(NoxUnlock) 。
软件开发商需要在软件中实现“生成解锁请求文件(NoxGenRequestFile)”和“使用解锁文件解除限制(NoxUnlock)”功能 。
五使用技巧与常见问题1如何判断加密锁已超过时间限制或次数限制?当加密锁超出时间或次数限制后 , 加密锁通过操作API将无法使用 , 也即无法对加密进行读写操作及密码验证操作 , 可以错误码判断加密锁已过期或超过次数限制 , 其它API仍可使用 。
同时 , 如果加密锁超出时间或次数限制 , 其指示灯将持续不停地快速闪烁 , 此时可确定加密锁已超出时间或次数限制 。
2加密锁超过时间限制或次数限制后是否 。
50、还能生成解除请求?可以 , 最终用户可在任何时候生成解除请求 , 并将生成的请求文件发送给开发商以获得相应的解除文件 。
六错误码查询注:在错误码中有很多错误描述一样的错误码 , 这是为了进行错误诊断定位而设计的 , 如果对错误码的错误原因有疑问 , 可以将该错误码及操作过程发送到北京世纪龙脉科技有限公司获得详细说明 。
错误码错误描述错误码错误描述0成功49内部错误1加载HID驱动失败50内部错误2加载HID驱动失败51内部错误3加载HID驱动失败52内部错误4加载HID驱动失败 , 操作系统错误53内部错误5加载HID驱动失败 , 操作系统错误54内部错误6无该HID设备55内部错误7无该HID设备56内部错误8无效Key句 。
51、柄57内部错误9HID驱动未打开58内部错误10无该HID设备59内部错误11HID驱动未打开60内部错误12HID读操作错误61内部错误13无该HID设备62内部错误14HID驱动未打开63内部错误15HID写操作错误64内部错误16HID写操作错误65内部错误17HID读操作错误66内部错误18初始化失败67内部错误19未找到加密锁68内部错误20无效Key句柄69内部错误21初始化失败70内部错误22通迅错误71内部错误23通迅错误72内部错误24权限不足73内部错误25内部错误74内部错误26内部错误75内部错误27内部错误76内部错误28内部错误77内部错误29内部错误78内部错误30内部错误79内部错误31内部错误80内部错误32内部错误81内部错误33内部错误82内部错误34HID驱动打开失败83加密锁已锁死35内部错误84加密锁存储区操作错误36内部错误85内部错误37内部错误86超级密码错误38用户密码错误87超级密码错误39内部错误88内部错误40内部错误89内部错误41内部错误90打开错误42内部错误91权限不足43内部错误92无效存储区地址44内部错误93无效内存区地址45内部错误94无效时间值46超级密码错误95加密锁到期47内部错误96解锁失败48加密锁未打开97未知错误错误码错误描述错误码错误描述24 。

稿源:(未知)
【傻大方】网址:/a/2021/0707/0022752002.html
标题:语言|易语言编写龙脉NOX时钟锁程序教程