车辆视频检测器linux版对于密码中包含敏感字符的处理方法

由于密码中含有敏感字符,导致前端页面异常,图标变灰,坐标拾取打不开图像等,主要原因是:密码比较前后不一致,左边是Abc_110+,右边是:Abc_110%2B,对于此问题,特别编写了url编码函数,利用Qt的编码方法对所有敏感字符进行统一处理,然后再进行比较,就OK了,注意opencv的rtsp格式符中不能包含敏感字符,但是SDK登录时,还要使用原始密码,所以密码输入时,要按原始密码输入,使用过程中,需要编码的地方用编码。

cpp 复制代码
//检查是否为重复编码
bool isAlreadyEncoded(const QString &str) {
    // 检查字符串中是否存在 % 后跟两位十六进制数字的模式
    QRegularExpression regex("%[0-9A-Fa-f]{2}");
    return regex.match(str).hasMatch();
}
//检查密码中是否含有敏感字符,如果有则进行url编码,如:@转换为%40,+号转换为%2B等
QString safeEncode(const QString &input) {
    if (isAlreadyEncoded(input)) {
        // 如果已经编码,直接返回原始字符串
        return input;
    } else {
        // 如果未编码,进行编码
        return QString::fromUtf8(input.toUtf8().toPercentEncoding());
    }
}

//检测摄像头参数是否改变
bool DataObj_Camera::checkCamParams(){
    if(id<1 || id>8) return false;
        if(cameraparam.getIp()!=gCarDetectorParams.getCameraIP(id)||
            cameraparam.getUsername()!=gCarDetectorParams.getCameraUsername(id) ||
            safeEncode(cameraparam.getPassword())!=safeEncode(gCarDetectorParams.getCameraPassword(id)) ||
            cameraparam.getPort()!=gCarDetectorParams.getCameraPort(id) ||
            cameraparam.getType()!=gCarDetectorParams.getCameraType(id) ||
            cameraparam.getCodec()!=gCarDetectorParams.getCameraCodec(id) ||
            cameraparam.getInputMode()!=gCarDetectorParams.getCameraInputMode(id)||
            cameraparam.getInputChannel()!=gCarDetectorParams.getCameraInputChannel(id)){
        return false;
    }
    return true;
}
相关推荐
张火火isgudi18 分钟前
fedora43 安装 nvidia 驱动以及开启视频编解码硬件加速
linux·运维·视频编解码·nvidia
奇树谦1 小时前
Qt | 利用map创建多个线程和定时器
网络·数据库·qt
IT19951 小时前
Qt笔记-使用SSH2进行远程连接linux服务器并上传文件
linux·服务器·笔记
XXYBMOOO1 小时前
内核驱动开发与用户级驱动开发:深度对比与应用场景解析
linux·c++·驱动开发·嵌入式硬件·fpga开发·硬件工程
lengjingzju3 小时前
一网打尽Linux IPC(三):System V IPC
linux·服务器·c语言
大聪明-PLUS3 小时前
如何编写你的第一个 Linux 内核模块
linux·嵌入式·arm·smarc
知识分享小能手3 小时前
Ubuntu入门学习教程,从入门到精通,Ubuntu 22.04文件压缩与解压缩知识点详解(12)
linux·学习·ubuntu
用户6135411460164 小时前
Krb5-libs-1.18.2-5.ky10.x86_64.rpm 安装失败怎么办?附详细步骤
linux
SoveTingღ5 小时前
【问题解析】我的客户端与服务器交互无响应了?
服务器·c++·qt·tcp
zhougl9965 小时前
Vuex 模块命名冲突:问题解析与完整解决方案
linux·服务器·apache