Qt以Base64加密作为基础实现3种加解密方式(包含中文处理)
效果图
加密算法
本文提供三种方式来加密解密,都是用Qt本身提供的类,没用外接库。
普通base64加密解密
Qt已经有了最基本的toBase64加密算法,同时提供fromBase64解密算法。
加密
QByteArray text = src.toLocal8Bit();
QByteArray by = text.toBase64();
解密
QByteArray text = src.toLocal8Bit(); QByteArray by = text.fromBase64(text); QString str = QString::fromLocal8Bit(by); // 注意:这里是处理中文用的
字符大小写加密解密
在普通Base64加解密算法基础上,用大小写加解密算法进行进一步优化。
大小写加解密算法
// 加解密都用此方法 QString toUpperAndLower(QString src) { for(int i = 0; i < src.count(); i++) { QChar curC = src.at(i); if(curC.isUpper()) { curC = curC.toLower(); } else if(curC.isLower()){ curC = curC.toUpper(); } src[i] = curC; } return src; }
加密
QByteArray text = src.toLocal8Bit(); QByteArray by = text.toBase64(); QString str = QString(by); str = toUpperAndLower(str); // 大小写加密
解密
QString str = toUpperAndLower(src); // 大小写解密 QByteArray text = str.toLocal8Bit(); QByteArray by = text.fromBase64(text); QString str = QString::fromLocal8Bit(by); // 注意:这里是处理中文用的
异或加解密(钥匙加解密)
在普通Base64加解密算法基础上,用异或加解密(钥匙加解密)算法进行进一步优化。
异或加解密(钥匙加解密)算法
// 加解密都用此方法 QString toXOREncryptUncrypt(QString src, const QChar key) { for(int i = 0; i < src.count(); i++) { src[i] = src.at(i).toLatin1() ^ key.toLatin1(); } return src; }
加密
QByteArray text = src.toLocal8Bit(); QByteArray by = text.toBase64(); QString str = QString(by); // 异或加密(钥匙加密) --- 注意:(这里的key是可以指定为任意字符的,相应的,解密也要同意字符才行) str = toXOREncryptUncrypt(str, 'g');
解密
QString str = toXOREncryptUncrypt(ui->lineEdit_j_3->text(), 'g'); //异或解密(钥匙解密) QByteArray text = str.toLocal8Bit(); QByteArray by = text.fromBase64(text); QString str = QString::fromLocal8Bit(by); // 注意:这里是处理中文用的
转载:https://blog.csdn.net/u014597198/article/details/81975970?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0-81975970-blog-125323025.235^v38^pc_relevant_sort_base3&spm=1001.2101.3001.4242.1&utm_relevant_index=3
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具