首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

QByteArray实现加解密功能

很多朋友在使用Qt编程的时候,有时候为了保护自己的软件作品或者本地的一些配置文件,或者数据 ,经常会用到数据的加密和解密的功能。

本期,咱就为大家准备这样一个教程,让你不需要借助第三方的工具,纯Qt的API即可实现加解密功能,具体方法如下:

经常用Qt编程的童鞋,肯定对QByteArray这类不陌生,其实他和QString有点类似,但是他有自己特殊的地方,毕竟不是一个名字的类啊。

闲话少说,直接上代码:

首先,打开注意下面这个API接口:

QByteArrayQByteArray::toPercentEncoding( constQByteArray&exclude= QByteArray(), constQByteArray&include= QByteArray(),charpercent= '%' ) const

这个可以Qt官方的API接口,是不是有些小伙伴到这里还是有点懵懂,会说,就是一个API啊,你肯定很想知道他是干啥的,对不?

好了,今天不让你去查Qt官方的帮助文档了,我直接给你解释就行。嘿嘿

其实,这个API接口是用来进行加密的,具体的样例代码如下:

QByteArraytext="";

QByteArrayba=text.toPercentEncoding("{}","s");

qDebug(ba.constData());

// prints ""

相信看到这个,大家应该明白了吧,如果你还没有明白,那就请关注我的微信公众号了,留言给我即可。

Qt官方给出的解释如下:

Returns a URI/URL-style percent-encoded copy of this byte array. Thepercentparameter allows you to override the default '%' character for another.

By default, this function will encode all characters that are not one of the following:

ALPHA ("a" to "z" and "A" to "Z") / DIGIT (0 to 9) / "-" / "." / "_" / "~"

To prevent characters from being encoded pass them toexclude. To force characters to be encoded pass them toinclude. Thepercentcharacter is always encoded.

说道这里,有童鞋又会说了,既然有了加密的方法,那么解析的方法呢,别急,咱们慢慢来,接下来我就说说解密的API。

先来看一下API的函数声明:

QByteArrayQByteArray::fromPercentEncoding( constQByteArray&input,charpercent= '%' )[static]

看到没有,加密和解密函数的都是静态函数,可以随时使用,方便的很啊。

解密的样例代码如下:

QByteArraytext=QByteArray::fromPercentEncoding("Qt%20is%20great%33"); text.data();// returns "Qt is great!"

针对这个函数的解释,Qt官方是这么说的:

Returns a decoded copy of the URI/URL-style percent-encodedinput. Thepercentparameter allows you to replace the '%' character for another (for instance, '_' or '=').

看不懂英文的,直接去问度娘吧,本人英语四级水平,还能看懂。

相信到了这里,每个小伙伴应该都清楚怎么处理这块了吧。

童鞋们在开发过程中有什么疑问或者难点,可以随时通过微信公众号里的联系邮件找到我,可以在公众号给我留言,我随时给你们支撑和回复,不仅是Qt,Python、JS或者STL的问题都可以,只要不问我Java或者C#就行,我是真不懂那个语言,哈哈。

祝童鞋们周末愉快,本人今天加班一天,顺便写了一下这个技术经验分享的文章,希望可以帮到有需要的童鞋们。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180519G0X3UG00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券