Qt 使用异或进行加密解密
2013-09-04 10:18
393 查看
在加密,解密中,异或运算应该时比较简单的一种。下面的代码,采用异或运算进行加密,解密:
调用过程:
加 标记可以防止多次加密。
#include <QtCore/QCoreApplication> #include <QTextCodec> #include <QString> #include <QDebug> QString getXorEncryptDecrypt(const QString &, const char &); QString byteToQString(const QByteArray &byte); QByteArray qstringToByte(const QString &strInfo); int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QString str = QString("http://www.baidu.com?id=1"); QString jiami = getXorEncryptDecrypt(str, 11); qDebug() << "str:" << str; qDebug() << "miwen:" << jiami; QString jiemi = getXorEncryptDecrypt(jiami, 11); qDebug() << "jimi:" << jiemi; return a.exec(); } QString getXorEncryptDecrypt(const QString &str, const char &key) { QString result; QByteArray bs = qstringToByte(str); for(int i=0; i<bs.size(); i++){ bs[i] = bs[i] ^ key; } result = byteToQString(bs); return result; } QString byteToQString(const QByteArray &byte) { QString result; if(byte.size() > 0){ QTextCodec *codec = QTextCodec::codecForName("utf-8"); result = codec->toUnicode(byte); } return result; } QByteArray qstringToByte(const QString &strInfo) { QByteArray result; if(strInfo.length() > 0){ QTextCodec *codec = QTextCodec::codecForName("utf-8"); result = codec->fromUnicode(strInfo); } return result; }
调用过程:
void QLogin::encryption() { if( m_flagserver == 0) { m_server = getXorEncryptDecrypt(m_server, 11); m_flagserver = 1; } if( m_flagjid == 0 ) { m_jid = getXorEncryptDecrypt(m_jid, 11); m_flagjid = 1; } if( m_flagpassword == 0) { m_password = getXorEncryptDecrypt(m_password, 11); m_flagpassword = 1; } } void QLogin::decryption() { m_server = getXorEncryptDecrypt(m_server, 11); m_jid = getXorEncryptDecrypt(m_jid, 11); m_password = getXorEncryptDecrypt(m_password, 11); }
加 标记可以防止多次加密。
相关文章推荐
- Qt使用异或进行加密解密
- 使用异或对字符进行加密,解密。
- java中使用异或的方式对文件进行加密解密
- JAVA中使用RSA通过秘钥文件对字符串进行加密解密
- Qt使用AES加密算法对字符串进行加密
- Java中使用DES进行加密解密
- 使用RSA进行信息加密解密的WebService示例
- java中的使用RSA算法进行公钥加密私钥解密 .
- 使用 OpenSSL 对文件进行加密和解密
- VC++使用DES算法进行文件加密和解密
- 读取本地json文件,转出为指定格式json 使用Base64进行string的加密和解密
- 客户端使用公钥进行加密,服务端使用密钥进行解密
- C/C++使用openssl进行摘要和加密解密(md5, sha256, des, rsa)
- 使用异或运算对数据及文件进行加密处理,附软件及源码
- PHP开发接口使用RSA进行加密解密方法
- 使用Microsoft CryptoAPI进行加密、解密、签名及验证
- C#使用RSA进行私钥加密公钥解密
- 使用java进行 AES 加密 解密
- Java-web下使用RSA进行加密解密操作
- 使用python进行加密解密AES算法