qt base64 java,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); // 注意:这里是处理中文用的

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值