QT历程(一):与CryptoJs对应的AES加密

目的:

使用QT进行AES加密,能用CryptoJs进行AES解密。

说明:

CryptoJs使用的AES加密文件为 aes.js

网上QT常用的AES加密方式
  1. Crypto++库
  2. Qca库
  3. Botan库
  4. 网友贡献的AES加密代码

crypto++ 和 qca 都需要下载源码编译成静态库或者动态库调用,方法比较复杂,没有编译成功。

botan 是QT自带的库,只需要引入头文件即可,调用还算是比较方便,但是我尝试的时候发现加密以后不能正确解密,不知道哪里弄错了,按道理来说不应该这样。

网友贡献的AES加密代码,可以正常加密和解密,但是和CryptoJs默认加密方式得出的结果不一样,配置了mode和padding 也不能得到相同的结果。

说到这里,常规手段已经用完了,好吧,结果一点都不理想。

非常规手段:

用QT调用js方法进行加解密。

大概步骤就是使用QJSEngine加载本地aes.js文件,然后调用js里面的方法进行加解密,获取返回结果,我这边得出的结果就是,加密不正确且无法解密。

到这里就结束了吗?不!我觉得还可以再抢救一下,也就是这篇文章的意义所在

==使用QML包含aes.js文件,再用QML函数调用aes.js的AES加密方法,最后用C++调用QML内的方法,获取加解密结果,成功!==

完!

原创文章,转载请注明出处:http://yliyun.com/blog/2016/05/30/qt-aes-cryptojs/

欢迎选择一粒云 ,您的专属企业网盘

你可能感兴趣的:(QT历程(一):与CryptoJs对应的AES加密)