318上位机VC MFC向加密狗写入与读取加密数据
加密狗写入读取加密数据
功能展示
我们编写的软件用户可以随意的复制使用,这时我们就得对软件进行加密处理防止盗版,软件的保护方法有很多,当前例程实现加密狗的加密数据写入与读取操作,事件向加密狗写入加密数据,在读取加密数据时出错则退出程序,效果如图;
要点提示
当前例程使用的是赛孚耐信息技术公司的加密狗产品,购买时会附带有开发手册与光盘,例程根目录带有加密狗的三个文件safenet软件狗开发商手册.pdf,softdog.h,RGDLW32V.OBJ;
加密狗API提供有两个函数;
unsigned long WriteDog(void),unsigned long ReadDog(void);
WriteDog()执行成功返回0,此函数通过三个全局变量传递数据void * DogData, short int DogBytes,DogAddr,DogBytes为向加密狗写入的数据长度, DogData为向加密狗写入的数据,DogAddr为加密狗写入数据的起始位置;
ReadDog()用于读取加密狗中的加密数据,执行成功返回0;
在注意的是开发时得将softdog.h,RGDLW32V.OBJ复制到工程根目录,且载入两文件到工程中;
实现功能
1.新建基于对话框的应用程序
2.将例程根目录的两文件softdog.h,RGDLW32V.OBJ,复制到自己工程根目录,并将RGDLW32V.OBJ载入到工程中;
3.在APP源文件定义变量short int DogBytes, DogAddr;
void * DogData; 在主对话框头文件 添加头文件及变量申明
#include "softdog.h"
extern short int DogBytes;
extern short int DogAddr;
extern void * DogData;
4.添加编辑框IDC_EDIT1,两按钮<向加密狗写入 加密数据><从加密狗读取 加密密钥>关联点击函数,实现加密狗的读写操作
void CGkbc8Dlg::OnWrite()
{
CString sData;
GetDlgItemText(IDC_EDIT1,sData);
if (sData.IsEmpty())
return;
DogAddr = 10; //设置起始地址
DogBytes = sData.GetLength(); //设置数据的长度
DogData = sData.GetBuffer(0); //设置写入的数据
if (WriteDog()==0)
MessageBox("向加密狗写入数据成功");
else
MessageBox("向加密狗写入数据失败");
}
void CGkbc8Dlg::OnRead()
{
char ReadBuff[10];
DogAddr = 10;
DogData = ReadBuff;
DogBytes = 7;
if(ReadDog())
{
MessageBox("向加密狗读取数据失败,程序将退出");
exit(2);
}
}
我们来演示下功能实现的整个过程
如果您认可,可联系功能定制! 如果您着急,充值会员可直接联系发您资料!
|