目录

一、 前言

二、 相关知识

三、效果展示

四、加密解密流程

五、主要函数解析

六、源码/相关包


一、 前言

本例主要简析加密狗加密解密的过程,结合实体加密狗和AES加密算法,提供QT Windows环境下加密狗的Demo

二、 相关知识

本例使用的是天威精简型加密狗,淘宝上有售,优点是价格很便宜,也提供相关软件和开发工具。

①加密原理:使用加密狗加密,就是将自定义的数据,写入到加密狗的相关存储器中;当程序运行时,读取出相应的数据,就可以判断出是否是对应的加密狗,达到加密的效果

②AES加密算法:高级加密标准,Rijndael加密法,是美国联邦政府采用的一种区块加密标准,破解难度极高

三、效果展示

①加密狗设置Demo

②自写软件Demo

四、加密解密流程

①加密狗加密流程(设置加密狗Demo)

②加密狗解密流程(自写软件Demo)

解密成功后的操作,可由开发者自行编写,本Demo解密成功后为可打开界面,解密失败为提示信息。

五、主要函数解析

①加密狗

/*
功能:从加密锁内部的储存器中读出数据到数据缓冲区中,该函数用于读取一批数据OutBuf(out);用来储存读出数据的数据缓冲区
address(in);用户要读取的数据在加密锁中的起始地址。
len(in);要读入的字节的个数
HKey(in);读密码的高八位密码
Lkey(in);读密码的低八位密码
InPath (in);加密锁所在的设备路径返回结果:若函数返回0,则表示函数执行成功,否则失败
*/
int YReadEx(unsigned char *OutData,short address,short len,char *HKey,char *LKey,char *Path );
/*
功能:将数据缓冲区中的数据写入加密锁内部的储存器中,该函数用于写入一批数据 buf(in);要写入的数据。
address(in);要写入到加密锁储存器中的起始位置。
len(in);要写入的字节的个数
HKey(in);写密码的高八位密码
Lkey(in);写密码的低八位密码
InPath (in);加密锁所在的设备路径返回结果:若函数返回0,则表示函数执行成功,否则失败
*/
int YWriteEx(unsigned char *InData,short address,short len,char *HKey,char *LKey,char *Path );
/*
功能:从加密锁中的指定起始位置读出字符串。outstring(out);若函数正确返回时,从加密锁address的储存空间中读出字符串到outstring中。
address(in);用户指定的加密锁内部地址空间。即字符串在加密锁中储存的的起始位置。
Len(in);要读取的字符串的长度。
HKey(in);读密码的高八位密码
Lkey(in);读密码的低八位密码
InPath (in);加密锁所在的设备路径返回结果: 若函数返回0,则表示函数执行成功,否则失败。
*/
int YReadString(char *outstring ,short Address,int Len,char * HKey,char *LKey,char *Path );
/*
功能:将字符串写入到加密锁的储存器中。InString(in);要写入到加密锁储存空间的字符串。
address(in);字符串要写入加密锁内部地址的起始位置
HKey(in);写密码的高八位密码
Lkey(in);写密码的低八位密码
InPath (in);加密锁所在的设备路径返回结果: 若函数返回0,则表示函数执行成功,否则失败。
*/
int YWriteString(char *InString,short Address,char * HKey,char *LKey,char *Path );
/*
功能:设置读加密锁储存器空间的读密码W_Hkey(in);写密码的高八位。
W_Lkey(in);写密码的低八位。
new_Hkey(in);要设置的新的读密码的高八位
new_Lkey(in);要设置的新的读密码的低八位
InPath (in);加密锁所在的设备路径返回结果: 若函数返回0,则表示函数执行成功,否则失败。
*/
int SetReadPassword(char *W_Hkey,char *W_Lkey, char *new_Hkey,char *new_Lkey,char *Path );
/*
功能:设置写加密锁储存器空间的写密码W_Hkey(in);写密码的高八位
W_Lkey(in);写密码的低八位
new_Hkey(in);要设置的新的写密码的高八位
new_Lkey(in);要设置的新的写密码的低八位
InPath (in);加密锁所在的设备路径返回结果: 若函数返回0,则表示函数执行成功,否则失败。
*/
int SetWritePassword(char *W_Hkey,char *W_Lkey, char *new_Hkey,char *new_Lkey,char *Path );

②AES

/*
功能:加密函数input(in);需加密的数组
output(out);完成加密的数组*/
void Cipher(unsigned char* input, unsigned char* output)  // encipher 16-bit input
/*
功能:解密函数input(in);需解密的数组
output(out);完成解密的数组*/
void InvCipher(unsigned char * input, unsigned char * output)  // decipher 16-bit input

六、源码/相关包

点击此超链接下载(或在最上面的资源下载): 加密狗调试Demo

加密狗+AES算法在QT Windows下的加密简析例程相关推荐

  1. ESP8266 WIFI模块调试及在QT Windows下的通讯

    目录 一.前言 二.相关知识 1.  ESP8266 ESP-01 2. 接线 3. 调试 4. 通信说明 5. QT实现方案说明 一.前言 本例简述ESP8266 ESP-01 WIFI模块的基础调 ...

  2. 【AES 算法】实现服务端 Java 加密,前端 JS 解密

    目录 背景 AES CBC 加解密算法 代码实现 Java 生成 key 和 iv Java 加密 & 解密 JavaScript 解密 小结 背景 我们的游戏充值平台马上要到货一批充值码,需 ...

  3. 在线加密解密网站(对称加密:AES、DES、RC,非对称加密:RSA)

    前两天写AES加密相关代码,学习的同时找到一个在线加密解密的网站,帮助自己快速理解了一下,推荐给学习加密的同学.在线加密网站,一开始接触加密(AES等)可以在这里体验下加密与解密,助于快速理解加密模式 ...

  4. windows下OpenSSL加密证书安装步骤与使用方法

    OpenSSL加密证书一般用于签名认证,含私钥和公钥.在Linux系统中,OpenSSL一般是已经安装好了,可以直接使用.而在Windows系统中,是需要安装使用的. 最近在使用支付平台时,用到了Op ...

  5. QT Windows下生成动态链接库

    目标:需要将一个QT程序生成动态链接库 Windows环境下Qt生成的共享库文件其后缀为dll,可以在程序运行过程中动态加载 新建项目,选择库 选择共享库 建立好项目后生成三个文件,两个.h一个.cp ...

  6. Qt Windows 下软件 release 发布

    1.首先要搞清楚动态链接库还是静态链接 本文只涉及动态链接库,就是编译出来的exe文件加上Qt 的必要dll文件. 一般跟别人一样的操作,直接双击 XX.exe,提示缺少什么dll,就去Qt的安装目录 ...

  7. Qt windows下获取CPU、主板、硬盘、网卡等相关信息

    首先磁盘ID和磁盘序列号是不一样的,磁盘的一些相关信息可通过以下方式获取 查看步骤,右键我的电脑---->选择属性---->选择设备管理器---->展开磁盘驱动器    就可以看到磁 ...

  8. html 解析 qt,windows下用QTwebkit解析html

    类型:文字输入大小:49.2M语言:中文 评分:9.9 标签: 立即下载 环境 windows7 + VS2010 + QT5.2_opengl 配置开发环境 1.安装VS2010 2.安装QT 5. ...

  9. crypto++(cryptopp)加密库aes算法的使用

    整个过程浪费了几个小时,感觉cryptopp库的源码不太友好. 遇到的坑和解决办法记录如下,可能不同环境会有不同的问题: 1.下载官网地址 https://www.cryptopp.com/#down ...

最新文章

  1. 记一次解题思路(周起始日)
  2. that is why用法
  3. 租客如何玩转物联网,打造智能新生活
  4. 20190920 On Java8 第二十章 泛型
  5. Anaconda下载及安装(图文)
  6. 批量压缩pdf文件大小,pdf批量压缩步骤
  7. 干货!基于语义生成概率的无监督常识问答方法——清华CoAI小组牛艺霖
  8. 游戏建模:模型场景制作过程分享
  9. 欧洲杯:匈牙利vs葡萄牙时间:06-15 23:59 星期二
  10. CC00024.CloudOpenStack——|OpenStack组件.V02|——|OpenStack-Cinder块存储|配置block.V2|
  11. PADS VX.2.7 + OrCAD 16.5 + AutoCAD 2020 使用教程
  12. 谷歌关闭SameSite功能
  13. php实现自动续费功能,如何关闭wps自动续费
  14. 关于汇编ARM指令DCD
  15. Python爬虫之findall和lxml
  16. 如何oracle调试存储过程
  17. Android 设置按钮在 下滑页面按钮隐藏,上滑页面按钮显示
  18. p2p 企业信贷 UML 跨行清算
  19. 那个不玩“抖音”的90后,后来怎么样了?
  20. 电商双11美妆数据分析

热门文章

  1. “显示器驱动已停止响应,并且已恢复”问题的解决方法
  2. windows镜像_苹果电脑用vMware安装Windows系统
  3. 英雄联盟极速下载提取下载地址
  4. 春节假期北京收费公路免费通行 高峰日交通量或超200万
  5. 利用ArcGIS提取大型面状水体
  6. Kong 运行报 Error: don‘t know how to auth: 10
  7. MyBatis-Plus用注解实现多表、嵌套、子查询语句
  8. Ulead GIF Animator制作滚动的文字条幅,循环滚动
  9. 【bnuz_xmsz】sz04MySQL 2021-10-19
  10. 小程序文章转发到企业微信朋友圈——自己记录可能不适合每个人