天天看點

簡單的加密解密

遇到一個需求,因為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這個時候,就能夠正常顯示中文了。

繼續閱讀