加密狗+AES算法在QT Windows下的加密简析例程
目录
一、 前言
二、 相关知识
三、效果展示
四、加密解密流程
五、主要函数解析
六、源码/相关包
一、 前言
本例主要简析加密狗加密解密的过程,结合实体加密狗和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下的加密简析例程相关推荐
- ESP8266 WIFI模块调试及在QT Windows下的通讯
目录 一.前言 二.相关知识 1. ESP8266 ESP-01 2. 接线 3. 调试 4. 通信说明 5. QT实现方案说明 一.前言 本例简述ESP8266 ESP-01 WIFI模块的基础调 ...
- 【AES 算法】实现服务端 Java 加密,前端 JS 解密
目录 背景 AES CBC 加解密算法 代码实现 Java 生成 key 和 iv Java 加密 & 解密 JavaScript 解密 小结 背景 我们的游戏充值平台马上要到货一批充值码,需 ...
- 在线加密解密网站(对称加密:AES、DES、RC,非对称加密:RSA)
前两天写AES加密相关代码,学习的同时找到一个在线加密解密的网站,帮助自己快速理解了一下,推荐给学习加密的同学.在线加密网站,一开始接触加密(AES等)可以在这里体验下加密与解密,助于快速理解加密模式 ...
- windows下OpenSSL加密证书安装步骤与使用方法
OpenSSL加密证书一般用于签名认证,含私钥和公钥.在Linux系统中,OpenSSL一般是已经安装好了,可以直接使用.而在Windows系统中,是需要安装使用的. 最近在使用支付平台时,用到了Op ...
- QT Windows下生成动态链接库
目标:需要将一个QT程序生成动态链接库 Windows环境下Qt生成的共享库文件其后缀为dll,可以在程序运行过程中动态加载 新建项目,选择库 选择共享库 建立好项目后生成三个文件,两个.h一个.cp ...
- Qt Windows 下软件 release 发布
1.首先要搞清楚动态链接库还是静态链接 本文只涉及动态链接库,就是编译出来的exe文件加上Qt 的必要dll文件. 一般跟别人一样的操作,直接双击 XX.exe,提示缺少什么dll,就去Qt的安装目录 ...
- Qt windows下获取CPU、主板、硬盘、网卡等相关信息
首先磁盘ID和磁盘序列号是不一样的,磁盘的一些相关信息可通过以下方式获取 查看步骤,右键我的电脑---->选择属性---->选择设备管理器---->展开磁盘驱动器 就可以看到磁 ...
- html 解析 qt,windows下用QTwebkit解析html
类型:文字输入大小:49.2M语言:中文 评分:9.9 标签: 立即下载 环境 windows7 + VS2010 + QT5.2_opengl 配置开发环境 1.安装VS2010 2.安装QT 5. ...
- crypto++(cryptopp)加密库aes算法的使用
整个过程浪费了几个小时,感觉cryptopp库的源码不太友好. 遇到的坑和解决办法记录如下,可能不同环境会有不同的问题: 1.下载官网地址 https://www.cryptopp.com/#down ...
最新文章
- 记一次解题思路(周起始日)
- that is why用法
- 租客如何玩转物联网,打造智能新生活
- 20190920 On Java8 第二十章 泛型
- Anaconda下载及安装(图文)
- 批量压缩pdf文件大小,pdf批量压缩步骤
- 干货!基于语义生成概率的无监督常识问答方法——清华CoAI小组牛艺霖
- 游戏建模:模型场景制作过程分享
- 欧洲杯:匈牙利vs葡萄牙时间:06-15 23:59 星期二
- CC00024.CloudOpenStack——|OpenStack组件.V02|——|OpenStack-Cinder块存储|配置block.V2|
- PADS VX.2.7 + OrCAD 16.5 + AutoCAD 2020 使用教程
- 谷歌关闭SameSite功能
- php实现自动续费功能,如何关闭wps自动续费
- 关于汇编ARM指令DCD
- Python爬虫之findall和lxml
- 如何oracle调试存储过程
- Android 设置按钮在 下滑页面按钮隐藏,上滑页面按钮显示
- p2p 企业信贷 UML 跨行清算
- 那个不玩“抖音”的90后,后来怎么样了?
- 电商双11美妆数据分析
热门文章
- “显示器驱动已停止响应,并且已恢复”问题的解决方法
- windows镜像_苹果电脑用vMware安装Windows系统
- 英雄联盟极速下载提取下载地址
- 春节假期北京收费公路免费通行 高峰日交通量或超200万
- 利用ArcGIS提取大型面状水体
- Kong 运行报 Error: don‘t know how to auth: 10
- MyBatis-Plus用注解实现多表、嵌套、子查询语句
- Ulead GIF Animator制作滚动的文字条幅,循环滚动
- 【bnuz_xmsz】sz04MySQL 2021-10-19
- 小程序文章转发到企业微信朋友圈——自己记录可能不适合每个人