1.关于QT中json数据处理和密码md5加密



新建一个Qt空项目

17Json.pro

HEADERS
+=
\

   
MyWidget.h

 

SOURCES
+=
\

   
MyWidget.cpp

 

QT
+=
widgets gui

MyWidget.h

#ifndef MYWIDGET_H
#define MYWIDGET_H
 
#include <QWidget>
 
class MyWidget : public QWidget
{
    Q_OBJECT
public:
    explicit MyWidget(QWidget *parent = 0);
 
signals:
 
public slots:
 
};
 
#endif // MYWIDGET_H

MyWidget.cpp

#include "MyWidget.h"
#include <QApplication>
#include <QJsonDocument>
#include <QJsonObject>
#include <QDebug>
#include <QCryptographicHash>  //用于加密的头文件
 
/*json的数据类型*/
/*
 "{
     "key": value
     [
        {},{},
     ]
 }"
*/
 
/*
 [
     {},
     {},
     {}
 ]
 */
MyWidget::MyWidget(QWidget *parent) :
    QWidget(parent)
{
    //使用md5加密
    QByteArray md5 = QCryptographicHash::hash(QByteArray("涂作权"),
                                              QCryptographicHash::Md5);
    QJsonObject obj;
    obj.insert("username",QString("涂作权"));
    obj.insert("password",QString(md5.toHex()));
    obj.insert("male",true);
    obj.insert("age",24);
 
    QJsonDocument doc(obj);
    QByteArray json = doc.toJson();
    qDebug() << json;
 
    //QJsonDocument doc2 = QJsonDocument::fromJson(json);
    //QJsonObject obj2 = doc2.object();
    QJsonObject obj2 = QJsonDocument::fromJson(json).object();
 
    if(obj2.value("username").toString() == "涂作权")
    {
        qDebug() << "yes";
    }
}
 
int main(int argc,char** argv)
{
    QApplication app(argc,argv);
 
    MyWidget w;
    w.show();
 
    return app.exec();
}

运行结果:

 

时间: 2024-09-30 08:05:59

1.关于QT中json数据处理和密码md5加密的相关文章

Qt中json文件加密问题

问题描述 Qt中json文件加密问题 正在写一个登录认证的程序(有一个登录框),个人并未采用C/S的基于数据库的认证过程,仅仅只是在本地通过读写文件来进行授权用户的认证以及添加等操作.个人希望用json文件来保存授权用户的信息(username,password),但是如果仅仅使用json文件,在使用时直接只读json文件就可以得到用户的密码,其安全性很低. 所以我现在有个问题:在Qt的json中,是否可以采取某种方式来对json文件进行加密处理,或者采取何种方式对password进行加密? 当

radius-Radius协议中的Response Authenticator字段MD5加密如何理解?

问题描述 Radius协议中的Response Authenticator字段MD5加密如何理解? ResponseAuth = MD5(Code+ID+Length+RequestAuth+Attributes+Secret) 3个问题: 1)公式中的加号是将各部分转换成十六进制相加嘛? 2)公式中的Attributes具体意义?(一封应答报文中含有多个Attributes,长短不一,是将这些Attributes分别相加还是拓展成字符串连接起来,又或者是只将Attributes的type相加?

在ASP,NET中,数据库怎样用MD5加密密码,求代码和运用方法

问题描述 没有学过MD5,越详细越好 解决方案 解决方案二:单md5很简单,不过也很不安全.代码如下,把密码password转为base64后的md5就可以存数据库了.用户登录时进行同样的处理检查和数据库保存的str是否一致.varbytes=Encoding.UTF8.GetBytes("password");using(varmd5=MD5.Create()){varhash=md5.ComputeHash(bytes);varstr=Convert.ToBase64String(

使用kettle转换中的JavaScript对密码进行加密和解密

日常开发中,为了确保账号和密码的安全,时常要对密码进行加密和解密.然而kettle是怎么对密码进行加密和解密的呢? 下面的代码需要再转换中的JavaScript中运行. var encrypted_password = 'not encrypted'; 加密(js中调用): encrypted_password = "Encrypted " + Packages.org.pentaho.di.core.encryption.Encr.encryptPassword(clear_pass

密码-MD5加密后的值可能相同

问题描述 MD5加密后的值可能相同 不同字符串的MD5加密后的值可能相同.假如'123'和'456'的MD5加密后的值相同.如果我的密码是123,那么我输入456在实际中是不通过的?那么是不是还有其他机制决定? 解决方案 1.md5不是加密算法,只是hash算法 2.md5碰撞(就是你说的值相同)几率非常非常非常低 3.一般的后台都不会直接密码一次md5,而是加盐后md5,甚至多次md5,防止脱库(意思就是就算有人把整个数据库拿走,用户的密码明文都不会泄露) 解决方案二: 如果我不知道你的密码,

java 密码MD5加密

package com.sunnylocus.util;      import java.security.MessageDigest;      /**    * 对密码进行加密和验证的类   */   public class CipherUtil{              //十六进制下数字到字符的映射数组       private final static String[] hexDigits = {"0", "1", "2", &

java密码如何实现MD5加密

import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import org.apache.log4j.Logger; /** * 将密码进行MD5加密处理 */ public class PassWordDigester { private static Logger logger = Logger.getLogger(PassWordDigester.class); private

QT中QListWidget窗口中条目更新,如何让它动态显示出来

问题描述 QT中QListWidget窗口中条目更新,如何让它动态显示出来 我做的是一个公交车报站系统,在点击完模拟按钮后,会模拟走完整条路线,但是QListWidget不会动态更新,其中的数据处理部分还是会进行 附上模拟按钮的代码 /* simulate */ void MyDialog::on_pushButton_3_clicked() { while (1) { // 先清空显示 ui->listWidget->clear(); QFile file("bus_.xml&qu

Qt之JSON保存与读取

简述 许多游戏提供保存功能,使得玩家在游戏中的进度可以被保存,并在以后再玩的时候进行加载.保存游戏的过程通常涉及将每个游戏对象的成员变量序列化为文件.要实现这个功能,可以采取许多格式,其中之一就是 JSON - 使用 QJsonDocument.如果不希望保存的文件可读,或者不需要保持文件大小,还能够以二进制格式序列化文档,这就厉害了~O(∩_∩)O~. 下面,将演示如何以 JSON 和二进制格式来保存和加载一个简单的游戏. 简述 Character 类 Level 类 Game 类 使用 更多