用AES来加密和解密文件
来源:互联网 发布:tomcat启动端口号 编辑:程序博客网 时间:2024/06/06 20:04
因工作需要,需要给文件加密,在网上找寻多时,找到有人写的aes的类,可以供QT使用
转载了人家的测试代码,
int main(int argc, char *argv[]){ QCoreApplication a(argc, argv); TAesClass *aes = new TAesClass; char mingwen[1024] = "helloworld"; DWORD size = strlen(mingwen); char miwen[1024]; char jiemi[1024]; UCHAR key[1024] = "aabbcc"; UCHAR *p = key; aes->InitializePrivateKey(16, p); //进行初始化 aes->OnAesEncrypt((LPVOID)mingwen, size, (LPVOID)miwen); //进行加密 aes->OnAesUncrypt((LPVOID)miwen, (DWORD)sizeof(miwen),(LPVOID)jiemi); //进行解密 //打印信息 qDebug() << "mingwen:" << mingwen; qDebug() << "miwen:" << miwen; qDebug() << "jiemi:" <<jiemi; free(aes); aes = 0; return a.exec();}
这儿首先需要设置key,然后在初始化后只要使用
aes->OnAesEncrypt((LPVOID)mingwen, size, (LPVOID)miwen); //进行加密 aes->OnAesUncrypt((LPVOID)miwen, (DWORD)sizeof(miwen),(LPVOID)jiemi); //进行解密
就可以进行加解密字符串
char mingwen[1024] = "helloworld";就是需要加密的字符串
在此基础上,做了些改变,让他可以加密文件
void Widget::encrypt(){ QString filename; filename=QFileDialog::getOpenFileName(this, tr("选择文件"), "", tr("Files (*.*)")); QFile file(filename); //判断文件名 static QByteArray dat; char *m_pUChar; intm_iAllByte; //传输文件 file.open(QIODevice::ReadWrite); dat = file.readAll(); m_pUChar = dat.data(); m_iAllByte = dat.size(); //获得文件大小 qDebug() << m_iAllByte; file.close(); TAesClass *aes = new TAesClass; char miwen[m_iAllByte * 4]; UCHAR key[1024] = "aabbcc"; UCHAR *p = key; aes->InitializePrivateKey(32, p); //进行初始化 int len = aes->OnAesEncrypt((LPVOID)m_pUChar, m_iAllByte, (LPVOID)miwen); //进行加密 QFile file2("1.data");
file2.open(QIODevice::WriteOnly); file2.write(miwen ,len); file2.close(); free(aes); aes = 0;}
void Widget::decrypt(){ QString filename; filename=QFileDialog::getOpenFileName(this, tr("选择文件"), "", tr("Files (*.*)")); QFile file(filename); //判断文件名 static QByteArray dat; char *m_pUChar; intm_iAllByte; //传输文件 file.open(QIODevice::ReadWrite); dat = file.readAll(); m_pUChar = dat.data(); m_iAllByte = dat.size(); //获得文件大小 //m_iAllByte = file->size(); //获得文件大小 qDebug() << m_iAllByte; file.close(); TAesClass *aes = new TAesClass; char jiemi[m_iAllByte * 3]; UCHAR key[1024] = "aabbcc"; UCHAR *p = key; aes->InitializePrivateKey(32, p); //进行初始化 int len = aes->OnAesUncrypt((LPVOID)m_pUChar, m_iAllByte,(LPVOID)jiemi); //进行解密 qDebug() << "len = "<< len; QFile file2("jiemi.png"); file2.open(QIODevice::WriteOnly); file2.write(jiemi ,len); file2.close();}
void Widget::encrypt()用来加密文件
void Widget::decrypt()用来解密文件
AES的类也已经上传了,有需要的人去下载,地址是:
AES加密的类
0 0
- 用AES来加密和解密文件
- AES文件加密解密
- 文件AES加密、解密
- AES加密和解密
- AES 加密和解密
- AES加密和解密
- AES加密和解密
- AES加密和解密
- AES加密解密算法文件
- Android AES 文件加密解密
- Android AES 文件加密解密
- Android AES 文件加密解密
- Android AES加密和解密
- RSA和AES加密解密
- AES和DES加密解密
- (原创)android使用AES加密和解密文件
- 对称加密----AES和DES加密解密
- 对称加密----AES和DES加密、解密
- Swap Two Nodes in Linked List
- yii框架搜索后分页
- C++ operator= 注意事项
- 透明度百分和六进制对比表
- linux 密码输入回显星号
- 用AES来加密和解密文件
- webService怎么调用Service
- smartctl /dev/sda1 -a,linux硬盘信息查询
- Appium-1 Appium环境搭建
- xml
- MySQL 记录不存在时插入 记录存在则更新的实现方法
- Unity3D 实现涡纹旋花效果
- Git/Vim指令大全
- Tomcat源码分析----一个http请求的经历