C++-AES
实验目的
通过用AES算法对实际的数据进行加密和解密来深刻了解AES的运行原理。
实验原理
AES算法本质上是一种对称分组密码体制,采用代替/置换网络,每轮由三 层组成:线性混合层确保多轮之上的高度扩散,非线性层由16个S盒并置起到混淆的作用,密钥加密层将子密钥异或到中间状态。Rijndael是一个迭代分组密码,其分组长度和密钥长度都是可变的,只是为了满足AES的要求才限定处理的分组大小为128位,而密钥长度为128位、192位或256位,相应的迭代轮数N,为10轮、12轮、14轮。AES汇聚了安全性能、效率、可实现性、灵活性等优点。最大的优点是可以给出算法的最佳差分特征的概率,并分析算法抵抗差分密码分析及线性密码分析的能力。其实现的加密流程图如图-1所示。
加密的主要过程包括:对明文状态的一次密钥加,N_r-1轮轮加密和末尾轮轮加密,最后得到密文。其中N_r-1轮轮加密每一轮有四个部件,包括字节代换部件ByteSub、行移位变换ShiftRow、列混合变换NixColumn和一个密钥加AddRoundKey部件,末尾轮加密和前面轮加密类似,只是少了一个列混合变换NixColu ...
C++-DES
实验目的
通过用DES算法对实际的数据进行加密和解密来深刻了解DES的运行原理。
实验原理
DES算法将明文分成64位大小的众多数据块,即分组长度为64位。同时用56位密钥对64位明文信息加密,最终形成64位的密文。如果明文长度不足64位,即将其扩展为64位(如补零等方法)。具体加密过程首先是将输入的数据进行初始置换(IP),即将明文M中数据的排列顺序按一定的规则重新排列,生成新的数据序列,以打乱原来的次序。然后将变换后的数据平分成左右两部分,左边记为\(L_{0}\),右边记为\(R_{0}\),然后对\(R_{0}\)实行在子密钥(由加密密钥产生)控制下的变换f,结果记为f(\(R_{0}\),\(K_{1}\)),再与\(L_{0}\)做逐位异或运算,其结果记为\(R_{1}\),\(R_{0}\)则作为下一轮的\(L_{1}\)。如此循环16轮,最后得到\(L_{16}\)、\(R_{16}\),再对\(L_{16}\)、\(R_{16}\)实行逆初始置换\(IP^{-1}\),即可得到加密数据。解密过程与此类似,不同之处仅在于子密钥的使用顺序正好相反。
DES加密 ...
C++-移位密码和单表置换密码
实验目的
通过C++编程实现移位密码和单表置换密码算法,加深对经典密码体制的了解。并通过对这两种密码实施攻击,了解对古典密码体制的攻击方法。
实验内容
根据实验原理部分对移位密码算法的介绍,自己创建明文信息,并选择一个密钥,编写移位密码算法实现程序,实现加密和解密操作。
两个同学为一组,互相攻击对方用移位密码加密获得的密文,恢复出其明文和密钥。
自己创建明文信息,并选择一个密钥,构建置换表。编写置换密码的加解密实现程序,实现加密和解密操作。
用频率统计方法,试译下面用单表置换加密的一段密文: SIC GCBSPNA XPMHACQ JB GPYXSMEPNXIY JR SINS MF SPNBRQJSSJBE JBFMPQNSJMB FPMQ N XMJBS N SM N XMJBS H HY QCNBR MF N XMRRJHAY JBRCGZPC GINBBCA JB RZGI N VNY SINS SIC MPJEJBNA QCRRNEC GNB MBAY HC PCGMTCPCD HY SIC PJEISFZA PCGJXJCBSR SIC XNPSJGJXNB ...
C++ -CLIENT-SERVER通信协议
具有最少安全功能的CLIENT-SERVER通信协议
实验要求
实现一个简单的 UDP 客户端-服务器应用程序,在客户端使用密码成功登录后,服务器将文件传输到客户端。
要求:您必须在两个不同的文件中实现两段代码: 客户端和服务器。下面是协议规范,它将为您提供实现这两个程序所害的详细信息。此外,我们还提供了数据包格式,它指定了客户端和服务器将交换的消息的内容。即使客户端和服务器运行在具有不同 endian 格式的体系结构上,您的实现也必须正确工作。
协议规范:
客户端发送JOIN REQ 分组以发起与服务器的通信。
服务器以 PASS REQ 数据包进行响应,该数据包是对用户的密码请求。
客户端将向服务器发送 PASS RESP 包,其中包括密码。
服条器将验证密码,如果密码正确,服务器将向客户端发送 PASS ACCEPT 数据包。
如果密码不正确,服务器将再次向客户端发送 PASS REQ 包。PASS REQ 数据包将最多重发三次。第三次之后,服务器向客户端发送拒绝消息。客户端关闭会话,服务器也退出。
一旦服务器向客户端发送 PASS ACCEPT 包,服务 ...
SQL -窗口函数
聚合函数-滑动窗口
1function(属性)over(partition by 属性 order by 属性 [frame])
选择聚合函数-根据什么分组-根据什么排序-滑动窗口范围
滑动范围:
rows/range between unbounded and current row (有order by时默认)
rows/range between unbounded preceding and unbounded following(无order by 时默认)
滑动范围
表达
开始行
unbounded preceding
[]中整数,往前推[]行
[] preceding
当前行
current row
[]中整数,往后推[]行
[] following
结束行
unbounded following
前后函数求环比
lead([],n) 返回当前行的后n行
lag([],n) 返回当前行的前n行
求前百分之..数据
函数
pr ...
python -数据处理与词云图绘制
python进行数据清洗、中文分词、统计词频、绘制词云
==============
python数据处理
数据导入
读取csv文件,简单清洗(没什么变化,数据集比较规范)
123456789101112#加载训练集import pandas as pd#导入两个csv文件train_dataset = pd.read_csv('yiqing.csv')print("数据集数量: %d"%train_dataset.duration.count())train_dataset.head(5)#对测试集完全相同的数据进行删除train_dataset.drop_duplicates(inplace=True)#删除含有缺失值的行train_dataset.dropna()train_dataset.duration.count()
数据清洗
停用词、分词、只留下中文(我觉得在这个情况下只留下中文是比较合理的)
1234567891011121314151617181920212223242526272829303132#数据清洗-去 ...
SQL -困难题
SQL困难题(牛客):本篇博客记录牛客种SQL题的困难题的一些解题思路,会给出解题代码和关键细节,以及使用navicat中运行的结果,不直接用牛客的自测结果是因为没有给出列名,看着很混乱()
SQL134 满足条件的用户的试卷完成数和题目练习数 通过率13.07%
题目:用户信息表user_info(uid用户ID,nick_name昵称, achievement成就值, level等级, job职业方向, register_time注册时间):
id
uid
nick_name
achievement
level
job
register_time
1
1001
牛客1号
3100
7
算法
2020-01-01 10:00:00
2
1002
牛客2号
2300
7
算法
2020-01-01 10:00:00
3
1003
牛客3号
2500
7
算法
2020-01-01 10:00:00
4
1004
牛客4号
1200
5
算法
2020-01-01 ...
python -辨别真假新闻
写在前面
最近在写一个微博数据分析的项目,本次博客的记录目的在于帮助回想python机器学习相关知识,这次的辨别真假新闻是大二上学期的一次课设作业(当时我还什么都不会),写得狠潦草仓促(),但是数据清洗、中文分词这些步骤对我正在做的项目有帮助,准备浅浅回忆一下。
本次实验采用机器学习中的传统方法,用jupyter notebook处理数据,通过文本预处理和提取特征的工程后,用多项式朴素贝叶斯分类器进行分类,得到各项评价指标,对模型进行评估。
课设要求
定义:给定一个信息的标题、出处、相关链接以及相关 评论,尝试判别信息真伪。
输入:信息来源、标题、相关超链接、评论。
输出:真伪标签(0: 消息为真,1: 消息为假)。
文本预处理
数据导入
python三大库第一位选手pandas登场,使用pd加载训练集导入csv文件。
1234567#加载训练集import pandas as pd#导入两个csv文件train_dataset = pd.read_csv('train.csv')test_dataset = pd.read_csv( ...
SQL -基础
条件判断函数
IF(expr , v1 , v2)
expr为真,返回v1,否则返回v2。
可以用as直接命名列名。
牛客题目:user_profile
id
device_id
gender
age
university
gpa
1
2138
male
21
北京大学
3.4
2
3214
male
复旦大学
4
3
6543
female
20
北京大学
3.2
4
2315
female
23
浙江大学
3.6
5
5432
male
25
山东大学
3.8
6
2131
male
28
山东大学
3.3
7
4321
male
26
复旦大学
3.6
现在运营想要将用户划分为25岁以下和25岁及以上两个年龄段,分别查看这两个年龄段用户数量
本题注意:age为null 也记为 25岁以下
题解:
1234567select if (age >= 25, '25 ...
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick Start
Create a new post
1$ hexo new "My New Post"
More info: Writing
Run server
1$ hexo server
More info: Server
Generate static files
1$ hexo generate
More info: Generating
Deploy to remote sites
1$ hexo deploy
More info: Deployment
hexo g --d 上传至绑定网站
hexo s 在线调试,端口4000
