Qt加密方式

一、QT MD5加密

#include <QGui>  
[cpp  QString username = "admin";  
String password = "admin123";    
QString fileName="./pwd.txt";    
  QFile file(fileName);  
   if(!file.open(QIODevice::ReadWrite | QIODevice::Text))   {  
    QMessageBox::warning(this,"warning","文件操作错误",QMessageBox::Yes);  }  
    QTextStream in(&file);  
  /**********加密开始***********/  
      QString usernamemd5;  
     QString pwdmd5;  
   QByteArray bb;  
  bb = QCryptographicHash::hash ( password.toAscii(), QCryptographicHash::Md5 );  
  pwdmd5.append(bb.toHex());  
  bb = QCryptographicHash::hash(username.toAscii(),QCryptographicHash::Md5);  
 usernamemd5.append(bb.toHex());  
/***********加密结束****************/  
       //QMessageBox::warning(this,"warning",usernamemd5,QMessageBox::Yes);  
   in<<usernamemd5+"\n";  
     in<<pwdmd5+"\n";  
    file.close();//到文件里看结果吧~当然用上面的消息框也可以哦


二、base64加密解密

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

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

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

        代码简单如下:

<span style="font-size:18px;">void encryption(const QString &fileName)  
{  
    //orginal file  
    //QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GB2312"));  
    QFile original(fileName);  
    if(!orginal.open(QIODevice::ReadOnly)) {  
        QMessageBox::warning(0, "Read11",  
                             "Read error!",  
                             QMessageBox::Yes);  
    }  
    QByteArray ba = orginal.readAll().toBase64();  
  
    QFile dest("dest.xx");  
    if(!dest.open(QIODevice::WriteOnly)) {  
        QMessageBox::warning(0, "Write11",  
                             "Write error!",  
                             QMessageBox::Yes);  
    }  
    dest.write(ba);  
  
    original.close();  
    dest.close();  
}</span>

解密:

<span style="font-size:18px;">void Deciphering(const QString &fileName)  
{  
    QFile file(fileName);  
    if(!file.open(QIODevice::ReadOnly)) {  
        QMessageBox::warning(this, tr("Load Ds File"),  
                             file.errorString(),  
                             QMessageBox::Yes);  
    }  
    //append deciphering contents to textbrowser  
    append(QByteArray::fromBase64(file.readAll()));  
  
    file.close();  
}</span>

一般公司加密都是自己写加密算法进行几层加密后,最后在进行base64转码加密,这样可很好的对文件进行保密。

      加密解密算法可搜索如:DES或者AES之类的算法,这些都是可逆的。

 

      base64维基百科:

Base64是一种基于64个可打印字符来表示二进制数据的表示方法。由于2的6次方等于64,所以每6个比特为一个单元,对应某个可打印字符。三个字节有24个比特,对应于4个Base64单元,即3个字节需要用4个可打印字符来表示。它可用来作为电子邮件的传输编码。在Base64中的可打印字符包括字母A-Z、a-z、数字0-9 ,这样共有62个字符,此外两个可打印符号在不同的系统中而不同。一些如uuencode的其他编码方法,和之后binhex的版本使用不同的64字符集来代表6个二进制数字,但是它们不叫Base64。

Base64常用于在通常处理文本数据的场合,表示、传输、存储一些二进制数据。包括MIME的email,email via MIME, 在XML中存储复杂数据.


你可能感兴趣的:(Qt加密方式)