本文作者:小嗷

微信公众号:aoxiaoji

吹比QQ群:736854977

简书链接:https://www.jianshu.com/u/45da1fbce7d0


本信息都来源与网络公开内容。如有疑问,如有不实。请立即通知小嗷,立即删除,有关言论。

本文你会找到以下问题的答案:

  1. QT读写文件(后台搞个僵尸进程获取你在离线下操作,写入某文本)
  2. int16 int32 int64区别
  3. sizeof用法总结
  4. C++中的foreach用法
  5. 文件大小及路径获取实例(监控你的某目录的变化,获取某文本绝对路径)
  6. 文件系统浏览实例(自定义一个文件浏览窗口并获取当前目录路径)【实时获取当前目录路径。如果菊花厂网络部门这么做,一/文件三个月清理一次,数据文件大不大我不知道。但是,以社会经验来看网络部门居心不轨】
  7. 获取文件信息(小嗷感觉这才是关键,通过文件信息来判断,你几时打开文件【除去没用的进程exe,以一天为单位,读取你对ppt,execel,word等打开关闭文件的信息】)

    当然,说到这里。大家和小嗷一样早就有对策,知己知彼,才能攻防胜利。(愿意分享自己的对策,可以和小嗷交流一下心得【没经本人同意小嗷,嘴巴严实】)


2.1 QT读写文件

不仅是菊花厂绝大部分公司所有计算机都安装后台监控软件,监控操作行为。

那么在不联网的情况下,它们是怎么监控计算机你们是否窃密(提前没有任何外部接口)?

你们可能问没有外部接口怎么窃密?就说最简单拍照或者脑子记住。

N年前菊花厂某些员工就是这样被抓。

小嗷根据自己多年的社会经验出发,不联网的情况下,那么后台一定生成一份类似文件读写你们的对公司电脑的操作。(请记住小嗷的一句话:不同的系统,不同的语言,同样的套路)

  • QFile:提供了读写文件的接口(可以读写文本文件,二进制文件和Qt的资源文件。)
  • QTextStream:处理文本文件
  • QDataStream:处理二进制文件
  • QTemporaryFile:处理临时文件
  • QFileInfo:获取文件信息
  • QDir:处理目录
  • QFileSystemWatcher:监视文件和目录变化

首先介绍QFile类读写文本文件

2.1.1 QFile类读写文本文件

(1)新建一个控制台项目(文件名称TextFile,一直下一步,Next)

代码如下:

#include <QCoreApplication>
#include <QFile>
#include <QtDebug>
/** 打开一个文件有两种方式。一种方式是在构造函数中指文件名;另一种方式是使用setFileName()函数设置文件名。** 打开文件使用open()函数,关闭文件使用close()函数。此处的open()函数以只读方式打开文件,只读方式参数为* QIODevice::ReadOnly,只写方式参数为QIODevice::WriteOnly,读写参数为QIODevice::ReadWrite。** qint64 lineLen = file.readLine(buffer, sizeof(buffer)):在QFile中可以使用从QIODevice中继* 承的readLine()函数读取文件中的一行。** if(LineLen != -1){qDebug() << buffer}:如果读取成功,则readLine()函数返回实际读取的字节数;如果* 读取失败,则返回“-1”*
*/
int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);QFile file("textFile1.txt");if(file.open (QIODevice::ReadOnly)){char buffer[1024];qint64 LineLen = file.readLine (buffer, sizeof(buffer));if(LineLen != -1){qDebug() << buffer;}}file.close ();return a.exec();
}

效果图

2.1.2 QTextStream类读写文本

QTextStream提供了更为方便的接口来读写文本,它可以操作QIODevice、QByteArray和QString。使用QTextStream的流操作符,可以方便地读写单词、行和数字。
为了产生文本,QTextStream还提供了填充、对齐和数字格式化的选项。

#include <QCoreApplication>
#include <QFile>
#include <QTextStream>
/** 将内容写入到文件中** if(data.open(QFile::WriteOnly | QFile::Truncate))表示将原来文件中的内容清空。输出时将格式设为左对齐,占10个* 字符位置。** out << QObject::tr ("score:") << qSetFileWidth(10) << left << 90 <<endl:用户使用格式化函数和流操作符设* 置需要的输出格式。其中,qSetFieldWidth ()函数是设置字宽度的格式化函数。除此之外,QTextStream还提供了其他一些格式* 化函数
*/
int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);QFile data("D://AAA---OPenCV/xiaoao.txt");if(data.open(QFile::WriteOnly|QFile::Truncate)){QTextStream out(&data);out<<QObject::tr("score:")<<qSetFieldWidth(10)<<left<<90<<endl;}return a.exec();
}

效果图:

2.1.2.1 QTextStream的格式化函数

2.1.2.2 QTextStream的流操作符

2.1.3 读写二进制文件

QDateStream类提供了将二进制文件串行化的功能,用于实现C++基本类数据类型,如char,short,int,char*等的串行化。更复杂的串行化操作则是通过将数据分解为基本类型完成的。

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
class MainWindow : public QMainWindow
{Q_OBJECT
public:MainWindow(QWidget *parent = 0);~MainWindow();//创建一个公共函数filefunvoid filefun();
};

mainwindow.cpp

//在主函数中调用filefun
#include "mainwindow.h"
#include <QFile>
#include <QtDebug>
#include <QDataStream>
#include <QDate>
MainWindow::MainWindow(QWidget *parent): QMainWindow(parent)
{filefun ();
}
MainWindow::~MainWindow()
{
}
void MainWindow::filefun ()
{/*将二进制数据写到数据流*/QFile file("binary.dat");file.open (QFile::WriteOnly | QFile::Truncate);QDataStream out(&file);                                 //将数据序列化out << QString(tr("张卫东:"));                           //将字符串序列化out << QDate::fromString ("1990/04/01", "yyyy/MM/dd");    //讲整数序列化out << (qint32)25;file.close ();/*从文件中读取数据*/file.setFileName ("binary.dat");if(!file.open (QFile::ReadOnly)){qDebug() << "error" << endl;return;}QDataStream in(&file);QString name;QDate birthday;qint32 age;in >> name >> birthday >> age;          //将获取字符串和整数qDebug() << name << birthday << age;file.close ();
}

运行效果:

为啥出现文件出现乱码?因为输入的数是二进制数据,只有用二进制编码打开,才不会出现乱码。(要是我是MIS,我就会采用这方法存取数据)

2.1.3.1 int16 int32 int64区别

int16=short; int32=int;int64=long;

Int16 值类型表示值介于 -32768 到 +32767 之间的有符号整数。

Int32 值类型表示值介于 -2,147,483,648 到 +2,147,483,647 之间的有符号整数。

Int64 值类型表示值介于 -9,223,372,036,854,775,808 到+9,223,372,036,854,775,807 之间的整数。

参考文章

https://blog.csdn.net/zxsydyq/article/details/9125641

2.1.3.2 sizeof用法总结

一、sizeof用来计算一个变量,或者数据类型的长度,以字节为单位。

二、sizeof在数组与指针上的特性

1 对于直接的调用sizeof,如果是数组首地址,sizeof会输出数组所占地址空间的大小(字节为单位)。如果是一个指针的话,则输出在该系统中地址的字节宽度,即(位宽/8)。

如下代码:则会以输出4, 30(一个char占一个byte空间), 4。

int *a;
char b[30];
char *c;  printf("%d, %d, d\n", sizeof(a), sizeof(b),sizeof(c));

2 如果是通过函数传递过来的地址,那么sizeof会把数组首地址和指针无差别当成是地址。

如下的代码段输出 4, 4

void test_sizeof_addr(char *a)
{  printf("%d\n", sizeof(a));
}
void test_sizeof_array(char a[])
{  printf("%d\n", sizeof(a));
}
int main()
{  char b[30];  test_sizeof_addr(b);  test_sizeof_array(b);  return 0;
}

而且在编译时编译器会提示警告如下:
warning: ‘sizeof’ on array function parameter ‘a’ will return size of ‘char *’ [-Wsizeof-array-argument]。

详细解析文章

https://blog.csdn.net/u012520854/article/details/53511154

2.2 目录操作与文件系统

QDir类具有存取目录结构和内容的能力,使用它可以操作目录,存取目录或文件信息、操作底层文件系统,而且还可以存取Qt的资源文件。

Qt使用“/”作为通用的目录分割符合URL路径分隔符。如果在程序中使用“/”作为目录分隔符,Qt会将其自动转换为符合底层操作系统的分隔符(如Linux使用“/”,Windows
使用“\”)。

QDir可以使用相对路径或绝对路径指向一个文件。isRelative()和isAbsolute()函数可以判断QDir对象使用的是相对路径还是绝对路径。如果需要讲一个相对路径转换为绝
对路径,则使用makeAbsolute()函数。

目录的路径可以通过path()函数返回,通过setPath()函数设置新路径。绝对路径使用absolutePath()返回,目录名可以使用dirName()获得,它通常返回绝对路径中的最后
一个元素,如果QDir指向当前目录,则返回“.”。目录的路径可以通过cd()和cdUp()改变。可以使用mkdir()创建目录,rename()改变目录名。

判断目录是否存在可以使用exists(),目录的属性可以使用isReadable()、isAbsolute()、isRelative()和isRoot()来获取。目录下的很多条目,包括文件、目录和符号链接,

总的条目数可以使用count()来统计。entryList()返回目录下所有条目组成的字符串链表。文件可以使用remove()函数删除,删除目录用rmdir()。

  1. “/” :Qt使用“/”作为通用的目录分割符合URL路径分隔符
  2. QDir :QDir可以使用相对路径或绝对路径指向一个文件
  3. path():目录的路径可以通过path()函数返回
  4. exists():判断目录是否存在可以使用exists()
  5. count() :总的条目数来统计(什么总条目?)
  6. entryList():返回目录下所有条目组成的字符串链表(小嗷不太懂返回什么链表?)
  7. remove():删除文件
  8. rmdir() :删除目录

除了count()和entryList()不太清楚,其余字面上都很好理解。

2.2.1 文件大小及路径获取实例

创建一个控制台项目

代码如下

#include <QCoreApplication>
#include <QStringList>
#include <QDir>
#include <QtDebug>qint64 du(const QString &path)
{//设置查询目录QDir dir(path);qint64 size = 0;//返回当前目录所有的文件的信息foreach(QFileInfo fileInfo,dir.entryInfoList(QDir::Files)){//将文件大小都加起来size += fileInfo.size();}//对目录下的子目录进行遍历,并忽略"."和".."目录foreach(QString subDir,dir.entryList(QDir::Dirs|QDir::NoDotAndDotDot)){//将子目录大小都加起来size += du(path+QDir::separator()+subDir);}//尺寸转换成M(大于1024时)或者Gchar unit ='B';qint64 curSize=size;if(curSize>1024){curSize/=1024;unit ='K';if(curSize>1024){curSize/=1024;unit ='M';if(curSize>1024){curSize/=1024;unit ='G';}}}//打印当前尺寸和路径qDebug()<<curSize<<unit<<"\t"<<qPrintable(path)<<endl;//输出尺寸return size;
}int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);//创建一个字符串的ListQStringList args = a.arguments();QString path;//返回列表中出现的值的次数。if(args.count()>1){path = args[1];}else{path = QDir::currentPath();}qDebug()<<path<<endl;du(path);return a.exec();
}

效果图

2.2.2 C++中的foreach用法

在c++中,一般人只知道foreach分开写为“for each”时的用法,却不知道“foreach”的用法。不多说,直接上代码。

QStringList listTemp;
listTemp.append("aaa");
listTemp.append("bbb");
listTemp.append("ccc");QString strTemp1;
QString strTemp2;foreach(strTemp1,listTemp)
{strTemp2= strTemp1;
}

以上代码中,listTemp会把自己的每个项,依次赋值给strTemp1。本例中,strTemp共有三项,foreach会循环三次,strTemp1在这三次循环中,依次被赋值“aaa”,“bbb”,“ccc”。
总结:foreach用来遍历list,可以在遍历中基于 list 的相应项做相应操作。

2.3 文件系统浏览实例(自定义一个文件浏览窗口并获取当前目录路径)

文件系统的浏览是目录操作的一个常用功能。这里通过实现一个能够显示所有文件的文件系统的浏览功能,介绍如何使用QDir类显示文件系统目录及用过滤方式显示文件列表的方法。

QDir的entryInfoList()方法是按照某种过滤方式获得目录下的文件列表。

QFileInfoList QDir::entryInfoList
(const QStringList &nameFilters,     //此参数指定了文件名的过滤方式,如“*”,“.tar.gz”Filters filters = NoFilters,               //此参数指定了文件属性的过滤方式,如目录、文件、读写属性等SortFlags sort = NoSort                //此参数指定了列表的排序情况
) const

QDir::Filter定义的过滤方式

QDir::SortFlag定义了一系列排序方式

创建一个FileView的项目,不带界面

代码如下

fileview.h

#ifndef FILEVIEW
#define FILEVIEW
#include <QDialog>
#include <QLineEdit>
#include <QDir>
#include <QLineEdit>
#include <QListWidget>
#include <QListWidgetItem>
#include <QFileInfoList>
#include <QVBoxLayout>
class FileView : public QDialog
{Q_OBJECT
public:FileView(QWidget *parent = 0, Qt::WindowFlags f = 0);~FileView();void showFileInfoList(QFileInfoList list);
public slots:void slotShow(QDir dir);void slotDirShow(QListWidgetItem *item);
private:QLineEdit *fileLineEdit;QListWidget *fileListWidget;QVBoxLayout *mainLayout;
};

fileview.cpp

#include "fileview.h"
#include <QStringList>
#include <QIcon>
FileView::FileView(QWidget *parent,Qt::WindowFlags f): QDialog(parent,f)
{setWindowTitle (tr("File View"));fileLineEdit = new QLineEdit(tr("/"));fileListWidget = new QListWidget;mainLayout = new QVBoxLayout(this);mainLayout->addWidget (fileLineEdit);mainLayout->addWidget (fileListWidget);connect (fileLineEdit, SIGNAL(returnPressed()), this, SLOT(slotShow(QDir)));connect (fileListWidget, SIGNAL(itemDoubleClicked(QListWidgetItem*)), this, SLOT(slotDirShow(QListWidgetItem*)));QString root = "/";QDir rootDir(root);QStringList string;string << "*";QFileInfoList list = rootDir.entryInfoList (string);showFileInfoList(list);
}
FileView::~FileView ()
{
}
/** 显示dir下的所有文件
*/
void FileView::slotShow (QDir dir)
{QStringList string;string << "*";QFileInfoList list = dir.entryInfoList (string, QDir::AllEntries, QDir::DirsFirst);showFileInfoList (list);
}
/** 根据用户的选择显示下一级目录的所有文件
*/
void FileView::slotDirShow (QListWidgetItem *item)
{QString str = item->text ();                //将下一级的目录保存在str中QDir dir;                                   //定义一个QDir对象dir.setPath (fileLineEdit->text ());        //设置QDir对象的路径为当前目录路径dir.cd (str);                               //根据下一级目录名重新设置QDir对象的路径fileLineEdit->setText (dir.absolutePath ());//刷新显示当前的目录路径slotShow(dir);                              //显示当前目录下的所有文件
}
/** 用户可以双击浏览器中显示的目录进入下一级目录,或单击".."返回上一级目录,* 顶部的编辑框显示当前所在的目录路径,列表中显示当前该目录下的所有文件**  for(unsigned int i = 0; i < list.count (); i++){...}:一次从QFilInfoList对象中取出所有项* 按目录和文件两种方式加入列表控件中。
*/
void FileView::showFileInfoList (QFileInfoList list)
{fileListWidget->clear ();   //清空列表控件for(unsigned int i = 0; i < list.count (); i++){QFileInfo temFileInfo = list.at (i);if(temFileInfo.isDir ()){QIcon icon("dir.png");QString filename = temFileInfo.fileName ();QListWidgetItem *temp = new QListWidgetItem(icon, filename);fileListWidget->addItem (temp);}else if(temFileInfo.isFile ()){QIcon icon("file.png");QString filename = temFileInfo.fileName ();QListWidgetItem *temp = new QListWidgetItem(icon, filename);fileListWidget->addItem (temp);}}
}

效果图

2.4 获取文件信息

QFileinfo类提供了对文本进行操作时获得的文件相关属性、包括文件名、文件大小、创建时间最后修改时间、最后访问时间及一些文件是否为目录、文件或符号链接和读写属性等。

代码如下:

fileinfo.h

#ifndef DIALOG_H
#define DIALOG_H
#include <QDialog>
#include <QLabel>
#include <QPushButton>
#include <QLineEdit>
#include <QCheckBox>
class FileInfo : public QDialog
{Q_OBJECT
public:FileInfo(QWidget *parent = 0);~FileInfo();
public slots:void slotFile();void slotGet();
private:QLabel *fileNameLabel;QLineEdit *fileNameLineEdit;QPushButton *fileBtn;QLabel *sizeLabel;QLineEdit *sizeLineEdit;QLabel *createTimeLabel;QLineEdit *createTimeLineEdit;QLabel *lastModfiledLabel;QLineEdit *lastModFiledLineEdit;QLabel *lastReadLabel;QLineEdit *lastReadLineEdit;QLabel *propertyLabel;QCheckBox *isDirCheckBox;QCheckBox *isFileCheckBox;QCheckBox *isSymLinkCheckBox;QCheckBox *isHiddenCheckBox;QCheckBox *isReadableCheckBox;QCheckBox *isWriteableCheckBox;QCheckBox *isExecutableCheckBox;QPushButton *getBtn;
};

fileinfo.cpp

#include "fileinfo.h"
#include <QGridLayout>
#include <QFileDialog>
#include <QDateTime>
FileInfo::FileInfo(QWidget *parent): QDialog(parent)
{fileNameLabel = new QLabel(tr("文件名:"));fileNameLineEdit = new QLineEdit;fileBtn = new QPushButton(tr("文件"));sizeLabel = new QLabel(tr("大小:"));sizeLineEdit = new QLineEdit;createTimeLabel = new QLabel(tr("创建时间:"));createTimeLineEdit = new QLineEdit;lastModfiledLabel = new QLabel(tr("最后修改时间:"));lastModFiledLineEdit = new QLineEdit;lastReadLabel = new QLabel(tr("最后访问时间"));lastReadLineEdit = new QLineEdit;propertyLabel = new QLabel(tr("属性:"));isDirCheckBox = new QCheckBox(tr("目录"));isFileCheckBox = new QCheckBox(tr("文件"));isSymLinkCheckBox = new QCheckBox(tr("符号链接"));isHiddenCheckBox = new QCheckBox(tr("隐藏"));isReadableCheckBox = new QCheckBox(tr("读"));isWriteableCheckBox = new QCheckBox(tr("写"));isExecutableCheckBox = new QCheckBox(tr("执行"));getBtn = new QPushButton(tr("获取文件信息"));QGridLayout *gridLayout = new QGridLayout;gridLayout->addWidget (fileNameLabel, 0, 0);gridLayout->addWidget (fileNameLineEdit, 0, 1);gridLayout->addWidget (fileBtn, 0, 2);gridLayout->addWidget (sizeLabel, 1, 0);gridLayout->addWidget (sizeLineEdit, 1, 1);gridLayout->addWidget (createTimeLabel, 2, 0);gridLayout->addWidget (createTimeLineEdit, 2, 1);gridLayout->addWidget (lastModfiledLabel, 3, 0);gridLayout->addWidget (lastModFiledLineEdit, 3, 1);gridLayout->addWidget (lastReadLabel, 4, 0);gridLayout->addWidget (lastReadLineEdit, 4, 1);QHBoxLayout *layout1 = new QHBoxLayout;layout1->addWidget (propertyLabel);QHBoxLayout *layout2 = new QHBoxLayout;layout2->addWidget (isDirCheckBox);layout2->addWidget (isFileCheckBox);layout2->addWidget (isSymLinkCheckBox);layout2->addWidget (isHiddenCheckBox);layout2->addWidget (isReadableCheckBox);layout2->addWidget (isWriteableCheckBox);layout2->addWidget (isExecutableCheckBox);QHBoxLayout *layout3 = new QHBoxLayout;layout3->addWidget (getBtn);QVBoxLayout *mainLayout = new QVBoxLayout(this);mainLayout->addLayout (gridLayout);mainLayout->addLayout (layout1);mainLayout->addLayout (layout2);mainLayout->addLayout (layout3);connect (fileBtn, SIGNAL(clicked(bool)), this, SLOT(slotFile()));connect (getBtn, SIGNAL(clicked(bool)), this, SLOT(slotGet()));
}
FileInfo::~FileInfo()
{
}
void FileInfo::slotFile ()
{QString fileName = QFileDialog::getOpenFileName (this, "打开", ",", "files(*)");fileNameLineEdit->setText (fileName);
}
void FileInfo::slotGet ()
{QString file = fileNameLineEdit->text ();QFileInfo info(file);qint64 size = info.size ();QDateTime created = info.created ();QDateTime lastModfiled = info.lastModified ();QDateTime lastRead = info.lastRead ();bool isDir = info.isDir ();bool isFile = info.isFile ();bool isSymLink = info.isSymLink ();bool isHidden = info.isHidden ();bool isReadable = info.isReadable ();bool isWriteable = info.isWritable ();bool isExecutable = info.isExecutable ();sizeLineEdit->setText (QString::number (size));createTimeLineEdit->setText (created.toString());lastModFiledLineEdit->setText (lastModfiled.toString());lastReadLineEdit->setText (lastRead.toString());isDirCheckBox->setCheckState (isDir ? Qt::Checked : Qt::Unchecked);isFileCheckBox->setCheckState(isFile ? Qt::Checked : Qt::Unchecked);isSymLinkCheckBox->setCheckState(isSymLink ? Qt::Checked : Qt::Unchecked);isHiddenCheckBox->setCheckState(isHidden ? Qt::Checked : Qt::Unchecked);isReadableCheckBox->setCheckState(isReadable ? Qt::Checked : Qt::Unchecked);isWriteableCheckBox->setCheckState(isWriteable ? Qt::Checked:  Qt::Unchecked);isExecutableCheckBox->setCheckState(isExecutable ? Qt::Checked : Qt::Unchecked);
}

效果图如下:

  1. 本人是抱着玩一玩的心态,学习opencv(其实深度学习没有外界说的这么高深,小嗷是白板,而且有工作在身并且于代码无关)
  2. 大家可以把我的数学水平想象成初中水平,毕竟小嗷既不是代码靠吃饭又不是靠数学吃饭,毕业N年
  3. 写文章主要是为了后人少走点弯路,多交点朋友,一起学习
  4. 如果有好的图像识别群拉我进去QQ:631821577
  5. 就我一个白板,最后还是成的,你们别怕,慢慢来把

分享可以无数次,转载成自己文章QQ邮箱通知一下,未经授权请勿转载。

  • 邮箱:631821577@qq.com
  • QQ群:736854977
  • 有什么疑问公众号提问,下班或者周六日回答,ths

小嗷为啥写这文章?考虑到在离线状态下,嵌入式设备也要正常运行,所以,需要保存数据到本地,等联网在自动上传到服务器。

扫扫盲 —什么是僵尸进程? 360软件就是典型的僵尸进程软件

推荐文章:

11.VS2015+OpenCV3.2+QT软件/插件(QT篇1) — OpenCV从零开始到图像(人脸 + 物体)识别系列

12.QT + OpenCV打包成应用(以及QT图标问题详细) — OpenCV从零开始到图像(人脸 + 物体)识别系列

19.Qt的视频播放(QT篇) — OpenCV从零开始到图像(人脸 + 物体)识别系列

22.从零开始开发QT软件思路(单片机的串口通信)– OpenCV从零开始到图像(人脸 + 物体)识别系列

26.菊花厂员工泄密事件(Qt5文件及磁盘处理)— OpenCV从零开始到图像(人脸 + 物体)识别系列

1. BS模型/CS模型以及C语言中.h和.c文件解析—(C到C++篇)

26.菊花厂员工泄密事件(Qt5文件及磁盘处理)--- OpenCV从零开始到图像(人脸 + 物体)识别系列相关推荐

  1. 9. Qt5文件及磁盘处理

    第 9 章 Qt5 文件及磁盘处理 Qt 提供了QFile 类用于进行文件操作.QFile 类提供了读写文件的接口,可以读写文本文件.二进制文件和Qt 的资源文件. 处理文本文件和二进制文件,可以使用 ...

  2. Qt5文件及磁盘处理

    9.1.1 读写文本文件 Qt提供了QFile类用于进行文件操作.QFile类提供了读写文件的接口,可以读写文本文件,二进制文件和Qt的资源文件. 处理文本文件和二进制文件,可以使用QTextStre ...

  3. NSA泄密事件之SMB系列远程命令执行漏洞及Doublepulsar后门全球数据分析

    本文讲的是NSA泄密事件之SMB系列远程命令执行漏洞及Doublepulsar后门全球数据分析, 1.   概述 2017 年 4 月 14 日,黑客组织Shadow Brokers 公布了一批新的N ...

  4. 超级眼电脑监控软件维护企业利益防止泄密事件的发生

    近年来发生了不少企业泄密事件,让受害企业损失惨重,甚至面临破产的风险.吃一堑长一智,为了防止企业泄密事件的发生许多企业提前做好防范,安装了超级眼电脑监控软件,其中一项功能就是电脑实时报警员工功能,一旦 ...

  5. 菊花厂骚操作:让你们智商都为 0

    文/北妈 阅读本文需要 3.2分钟 这是北妈第 260篇 原创文章 一 不出所料,251事件三天内,果然出了热点 今天唐山4.5级地震,还有老罗卖鲸鱼皮的热点,都没盖住251事件,可见这次的事,大家没 ...

  6. 触目惊心:2015十大最具影响力的数据泄密事件

    2015年,是数据安全事故频发年,也是数据安全防护技术高速发展的一年.回顾整个2015,产业信息化.数字化.网络化进程加速,互联网+已然成为一种不可逆的趋势,互联网.云计算.大数据带来更新式革命,然而 ...

  7. 如何预防企业内部数据泄密事件

    安全专家统计报告说明,企业在遭遇数据泄露事件时,有百分之八十的概率是出现在内部人员泄密身上.这样的结果表明,内部数据安全问题远远比网络攻击更加可怕. 安全专家统计报告说明,企业在遭遇数据泄露事件时,有 ...

  8. 数据泄密事件触目惊心, 看麒麟信安天机存储加密系统如何安全守护?

    随着产业信息化.数字化.网络化进程加速,互联网+已然成为一种不可逆的趋势,然而目前数据泄露等安全事件频频被爆出,新趋势下的数据安全状况变得越发严峻: 银行泄露客户信息被罚30万--据媒体报道,2020 ...

  9. TalkTalk公司泄密事件时间轴

    本文讲的是 TalkTalk公司泄密事件时间轴,英国电信服务商TalkTalk由于网站被黑客入侵一事,接连登上新闻头条.最初,人们认为这个事件只是四百万TalkTalk客户的私人信息和金融信息泄露.然 ...

最新文章

  1. 研究发现大部分企业没有在云端采用Office 365
  2. google圣诞节彩蛋
  3. LeetCode 303,560,1248 (前缀求和 )
  4. GIT_服务器与本地环境构建
  5. 1024对话内核大神谢宝友
  6. 《数学分析》里的人生
  7. 简单的Jquery焦点图切换效果
  8. 一个帮助你处理延迟,重复,循环操作的jQuery插件 - timing
  9. 打印服务器自动关闭,win7打印机服务print spooler老是自动关闭怎么解决
  10. 常用电子面单接口API demo下载
  11. 1. 类,对象,对象属性,对象的行为
  12. matlab和robotstudio,一种从Robotstudio环境中导出机器人模型并在MATLAB下使其可视化的研究记录...
  13. BZOJ 1787 Ahoi2008 Meet紧急集合
  14. java:判断字符串的开始或结尾
  15. 蓝桥杯真题(路径)C语言
  16. 如何把IDEA中设置像eclipse默认铺开包层次结构
  17. clickhouse将csv文件导入表中出现的 DB::ParsingException: Cannot parse input: expected ‘,‘ before: ‘\‘错误的解决方法
  18. 自定义 RPC框架4——RMI+Zookeeper实现RPC框架
  19. 2.linux_进程编程
  20. 丁鹿学堂:webstorm2022最新UI配置

热门文章

  1. linux小火车指令,Linux 好玩的小命令–linux小火车
  2. 挡土墙lisp程序_基于Visual LISP与C#的水工挡土墙计算软件开发
  3. 《实战Java高并发程序设计》github笔记和源码
  4. 2、Arduino开发语言
  5. BootStrap4内容系列之图像排版
  6. C4D+OC渲染线框
  7. 一图读懂丨「云信派对」一站式娱乐社交解决方案
  8. 数据结构在.net加密解密反流程混淆中的应用[看雪学院2006金秋读书季]
  9. 人工智能第8章 一阶逻辑FOL
  10. 二维码生成 base64格式 Java