天天看点

简单的加密解密

遇到一个需求,因为xml中含有对sql语句,不希望客户能直接看到,所以网上搜了下加密。下面是一种很简单很简单的方法。只是提供基本的无法看到明文的方法。

原文连接:http://blog.csdn.net/hai8902882/article/details/7860933

中文文件加密、解密,最简单的方法即可利用

        QByteArrary::toBase64(),QByteArray::fromBase64()函数进行转码和解码进行简单加密、解密

        即自己写个简单程序将中文文件加密后保存于新的文件中,再通过通过fromBase64解密显示。

        代码简单如下:

void encryptionWindow::encryption(const QString &fileName, const QString &dest)
{
    QFile original(fileName);
    if(!original.open(QIODevice::ReadOnly))
    {
        qDebug() << "original open error!";
    }

    QByteArray ba = original.readAll().toBase64();

    QFile destFile(dest);
    if(!destFile.open(QIODevice::WriteOnly))
    {
        qDebug() << "dest open error!";
    }

    destFile.write(ba);

    original.close();
    destFile.close();
}
           

解密:

void encryptionWindow::deciphering(const QString &fileName, const QString &destFileName)
{
    QFile file(fileName);
    if(!file.open(QIODevice::ReadOnly))
    {
        qDebug() << "file open error!";
    }

    QFile dest(destFileName);
    if(!dest.open(QIODevice::WriteOnly| QIODevice::Truncate))
    {
        qDebug() << "file open error!";
    }
    dest.write(QByteArray::fromBase64(file.readAll()));

    dest.close();
    file.close();
}
           

其中,如果文件中包含中文的话,会乱码。网上找到解决办法

连接:http://www.btlinux.cn/show1.asp?wid=1676

首先有一个txt的文本文件,内部有中文,一般情况下这样的中文是以GBK标准编码的,除非你在存储的时候显式地存为Unicode。直接通过

QFile,然后读取QByteArray,会发现在命令行里面显示出来的是乱码,那是因为Qt默认情况下会以ASCII编码来解释字符串的,这个时侯我

们就需要对字符产编码进行转化,QTextCodec类可以很好的帮助我们完成这一任务。

首先包含头文件:

#include

然后,可以参考如下代码:

QString str;

QFile file("E:\\a.txt");

if

(!file.open(QIODevice::ReadOnly))

{

cerrreturn 1;

}

QTextCodec *tc =

QTextCodec::codecForName("GBK");

QByteArray ba = file.readAll();

str =

tc->toUnicode(ba);

cout这个时候,就能够正常显示中文了。

继续阅读