密码学实践-04
密码强度
你要揭榜的任务非常简单,内容如下。
用户输入口令后,请进行强度检测:
等级三种:强,中,弱
1、口令长度小于等于8位,并且纯小写英文或大写英文,弱
2、口令长度小于等于8位,并且有小写、大写英文和非英文字符,中
3、口令长度大于8位,并且纯小写英文或大写英文,中
4、口令长度大于8位且小于等于16位,并且有小写英文、大写英文、非英文字符中的两种,中
5、口令长度大于16位,并且有小写英文、大写英文、非英文字符中的两种,强
6、口令长度大于16位,并且有小写英文、大写英文、非英文字符中的三种,强
python代码实现,上传jupyter文件和运行截图!
奖励:
1、平时成绩+5分;
2、“CPPU数安雇佣兵团”加入条件之一,需要完美做完5个任务。
(置换加密练习、代换密码练习挑战任务也计入5个任务之一)
# 用户输入口令
password = input("请输入您的口令:")# 判断口令强度
def check_password_strength(password):if len(password) <= 8 and (password.islower() or password.isupper()):return "弱"elif len(password) <= 8 and (any(c.islower() for c in password) and any(c.isupper() for c in password) and not password.isalpha()):return "中"elif len(password) > 8 and (password.islower() or password.isupper()):return "中"elif 8 < len(password) <= 16 and ((any(c.islower() for c in password) and any(c.isupper() for c in password) and not password.isalpha()) or (not password.isalpha() and not password.isnumeric())):return "中"elif len(password) > 16 and ((any(c.islower() for c in password) and any(c.isupper() for c in password) and not password.isalpha()) or (not password.isalpha() and not password.isnumeric())) and any(not c.isalnum() for c in password):return "强"elif len(password) > 16 and any(c.islower() for c in password) and any(c.isupper() for c in password) and any(not c.isalnum() for c in password):return "强"else:return "弱"# 输出口令强度
print("您输入的口令强度为:", check_password_strength(password))
对文件名进行识别并分类
你要揭榜的任务非常比较简单:
1、找一堆文件,比如1000个,要求对文件名进行识别并分类:公开类、内部、涉密类。
识别规则请自己定义,Python代码实现。
2、找一个文件excel或者csv,里边的数据有很多行很多列,要求对数据列的列名(即属性)进行识别并分级:1级、2级、3级、4级...等。
识别规则请自己定义,Python代码实现。
3、敏感数据识别:识别规则请自己定义,Python代码实现。
文件分类任务
对于文件名的分类,我将使用正则表达式进行识别。假设公开类的文件名以 public_
开头,内部的文件名以 internal_
开头,涉密类的文件名以 confidencial_
开头。
re.IGNORECASE
是一个标志(flag),用于指示在正则表达式匹配过程中忽略大小写。当您使用这个标志时,正则表达式将被视为不区分大小写的,因此它可以匹配任何大小写组合的文本。os.listdir()
是一个Python函数,它返回指定路径下的所有文件和子目录的名称列表。如果您没有提供任何参数,则默认将当前工作目录用作路径。- 我们将
encoding
参数设置为 'gbk',表示以该字符编码格式读取文件。这可以帮助 Python 正确处理文本文件中的 Unicode 字符。
例如,在以下示例代码中,我们列出了当前工作目录中的所有文件:
#文件分类
import os
import repath = 'path/to/files'# 这里需要填写您存储文件的路径
public_regex = re.compile(r'^public_', re.IGNORECASE)
internal_regex = re.compile(r'^internal_', re.IGNORECASE)
confidential_regex = re.compile(r'^confidential_', re.IGNORECASE)for filename in os.listdir(path):if public_regex.search(filename):# 分类为公开类print(f"Filename '{filename}' is classified as public.")elif internal_regex.search(filename):# 分类为内部类print(f"Filename '{filename}' is classified as internal.")elif confidential_regex.search(filename):# 分类为涉密类print(f"Filename '{filename}' is classified as confidential.")else:# 没有匹配到任何规则print(f"Cannot classify filename '{filename}'.")
在这个脚本中,我们首先指定了文件路径并定义了三个正则表达式模式,用于匹配公开类、内部类和涉密类文件的文件名。然后,我们遍历了给定路径下的所有文件,并使用 search()
函数来检查文件名是否符合任何一个模式。
运行脚本后,它会打印每个文件名的分类结果。
2.数据列属性分类任务
对于数据列的列名识别和分类,我将使用 Pandas 库进行处理。假设属性名中包含根据敏感程度标记的字符串元素并使用方括号括起来。例如: [1]Name
表示一级属性 "Name"。下面是相应的 Python 代码:
import pandas as pddf = pd.read_csv(path,encoding=gbk)
with open('example.txt', 'r', encoding='gbk') as f:data = f.read()level_regexes = [re.compile(f'^\[{level}\].+$', re.IGNORECASE) for level inrange(1, 5)]for col in df.columns:for i, pattern inenumerate(level_regexes):if pattern.match(col):print(f"Column '{col}' is classified as level {i + 1}.")breakelse:# 如果没有匹配到任何规则print(f"Cannot classify column '{col}'.")
此脚本会读取给定路径中的数据文件,并遍历所有列名以查找包含不同等级标记的列名。我们使用一个包含四个正则表达式模式的列表,分别用于匹配四个不同级别的列名。每当找到一个匹配项时,我们就输出其对应的级别。
运行脚本后,它将逐个打印所有列名及其分类结果。如果无法与任何模式匹配,则会打印分类错误消息。
3.敏感数据识别任务
对于敏感数据的识别,规则可以根据应用情况和具体需求进行定义。以下是一些常见的规则:、
- 身份证号码 - 包含 18 个数字的字符串。
- 银行卡号码 - 包含 16 到 19 个数字的字符串。
- 手机号码 - 包含 11 个数字的字符串。
- 邮箱地址 - 包含 "@" 字符,后跟域名。
我们可以使用正则表达式来识别这些敏感信息。下面是一个示例脚本,演示如何查找文本文件中的银行卡号码:
import re# 打开文件并读入文本内容
with open('data.txt', 'r') as f:contents = f.read()# 定义一些敏感数据的规则(示例)
patterns = [r'\b(身份证|银行卡号)\b([^\d]*\d{4}\s?){3}', # 身份证或银行卡号r'\b(手机号|电话号码)\b\s*\+?\d+(\s|\-|\.)?\d+', # 手机号或电话号码r'([\w\.\-\+]+@[a-zA-Z\d\-]+\.[a-zA-Z]{2,}(?:\.[a-zA-Z]{2})?)' # 邮箱地址
]# 检查文本内容中是否包含敏感数据
sensitive_data = []for pattern in patterns:matches = re.findall(pattern, contents, flags=re.IGNORECASE)if len(matches) > 0:sensitive_data.extend(matches)if len(sensitive_data) > 0:print('敏感数据如下:')for data in sensitive_data:print('- ' + data)
else:print('未发现敏感数据')xx
import repath = 'path/to/textfile'# 这里需要填写您存储文本文件的路径
card_regex = re.compile(r'\b[0-9]{16,19}\b')withopen(path, 'r') as file:data = file.read()matches = card_regex.findall(data)
formatchin matches:print(f"Found bank card number: {match}.")
在此脚本中,我们使用类似于之前的模式匹配,并使用 findall()
函数来遍历给定文本中的所有可能的匹配项。如果找到任何匹配项,则将其打印出来。
请注意,针对其他类型的敏感信息,您可能需要编写不同的正则表达式模式,并根据需要修改代码。
隐私huan
什么是隐私獾?
隐私獾是一个浏览器扩展程序,它可以阻止广告商和其他第三方跟踪器秘密跟踪您去哪里,以及您在网上看什么网页。 如果一个广告商似乎在未经您允许的情况下在多个网站上跟踪您,隐私獾会自动阻止该广告商在您的浏览器中加载更多内容。 对广告商来说,您就像突然消失了一样。
相关文章:
密码学实践-04
密码强度 你要揭榜的任务非常简单,内容如下。 用户输入口令后,请进行强度检测: 等级三种:强,中,弱 1、口令长度小于等于8位,并且纯小写英文或大写英文,弱 2、口令长度小于等于8位&am…...
SpringBoot整合swagger实现接口管理并设置加密访问
pom.xml pom.xml文件加入swagger <dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.9.2</version></dependency><dependency><groupId>com.github.xiaoymin&l…...
C语言单例模式-实现高性能日志管理器
C语言单例模式-实现高性能日志管理器 代码中,使用了单例模式来创建日志管理器对象,保证了整个程序中只有一个日志管理器对象。 日志管理器中包含了日志文件指针、日志级别、互斥锁等成员,通过这些成员来实现日志的写入和级别控制。 在主函数…...

Flutter - flutter项目添加 Web 支持
demo 地址: https://github.com/iotjin/jh_flutter_demo 代码不定时更新,请前往github查看最新代码 参考: 官方:构建 Flutter Web 应用 Flutter Desktop Support flutter项目添加 Web 支持 在项目的根目录下运行:flutter create …...

关键词数据分析-搜索词和关键词分析工具
要搜索热门关键词获取,可以采用以下几种方法: 使用百度指数:百度指数是一个实用的工具,可用于查看关键词的热度趋势、搜索量等数据。在百度指数中,您可以输入您要搜索的关键词,并查看近期的相关数据。这可以…...

SpringCloud微服务技术栈之网关服务Gateway
文章目录SpringCloud微服务技术栈之网关服务Gateway前言网关服务Gateway的基本概念Gateway的体系结构Gateway的主要功能网关服务Gateway的架构设计架构设计方案示例代码网关服务Gateway的实践操作1. 创建工程2. 配置路由规则3. 实现过滤器4. 集成服务注册中心5. 启动网关服务器…...

什么原因导致了儿童自闭症?跟父母养育有关吗?
导致儿童自闭症的原因是什么?这和父母的抚养有关吗?学习教育孩子的方法,让孩子快乐健康地成长,是家庭和孩子生活中的一件重要事情。不良的环境和错误的教育会导致儿童自闭症,这是真的吗?自闭症,…...

抽象轻松web
不断学习,不断进步,才能不被替代 只有你的不可被替代性才是价值所在 千变万化的叶子 根只有一个 ----2023年4月7日 弹性盒布局的作用其实是定位 我们设置弹性盒子的时候目的是为了让元素放在页面中的某个位置,从而达到布局的效果 定位的本质…...
如何获取系统下目录的文件系统类型
最近看到一个问题,如何获取当前系统的文件类型? 这个时候就要介绍下/proc/mounts文件:这个文件以/etc/mtab文件的格式给出当前系统所安装的文件系统信息。同时也能反映出任何手工安装从而在/etc/mtab文件中没有包含的文件系统。 我们可以通…...

【Linux】GCC编译器的使用
目录 前言: 一、GCC编译过程 1.预处理: 2.编译 3.汇编 4.链接 二、制作、使用动态库和静态库 1.静态库 2.动态库 三、好用的选项 1.gcc -E main.c 2.gcc -E -dM main.c > 1.txt 3.gcc -Wp,-MD,abc.dep -c -o main.o main.c 4.echo main(){}| …...
浅谈一下socks5协议原理详解与应用场景分析
SOCKS5协议是一种网络传输协议,主要用于代理服务器和客户端之间的通信。它能够通过认证授权等多种方式,提供安全可靠的代理服务,适用于各种应用场景。 SOCKS5协议原理: 1.连接建立:客户端向代理服务器发送连接请求&…...
java面试准备17
事务的四大特性 (1)原子性:事务执行的最小单位,不可被分割,事务的原子性保证事务中的一连串动作要么都执行,要么都不执行。 (2)一致性:执行事务前后的数据保持一致&…...
ffmpeg的滤镜
FFmpeg 是一款开源的跨平台音视频处理工具,它提供了众多功能强大的滤镜用于视频/音频的加工处理。其中,滤镜(Filter)是 FFmpeg 中一个十分重要且常用的组件,它们可以实现对视频和音频的各种操作和变化,如转码、编解码、剪裁、裁剪…...
springboot项目感受03
继续上文 01.数据的部分已经完成了,此时需要考虑到前端与用户交互的部分,这里就需要网页html,服务器响应servlet。 网页的部分,html文件放在resource目录下的template文件中,servlet变成了controller包,其…...

notion插件:为你的工作流带来新生
在本文中,我们将介绍Notion的几款有助于提高生产力的插件。这些插件将加强Notion的功能,并为你的工作流程带来更多的便利。 我们特地为你准备了这本漫游指南:收录各种工具、信息和资源,携你共同探索浩瀚美丽的互联网海洋。 snackt…...

【python】Jupyter的使用(python代码编辑器)
文章目录一、Jupyter的介绍1、Jupyter是什么?2、Jupyter有什么独特之处?二、Jupyter的安装1、首先要下载python2、用pip命令下载Jupyter三、Jupyter的使用1、运行Jupyter2、简要介绍Jupyter的使用方法3、快捷键的使用四、总结一、Jupyter的介绍 1、Jupy…...

面试官:你做过什么有亮点的项目吗?
前言 面试中除了问常见的算法网络基础,和一些八股文手写体之外,经常出现的一个问题就是,你做过什么项目吗? 面试官其实是想看看你做过什么有亮点的项目, 其实大家日常做的项目都差不多,增删改查,登录注册&…...
【华为OD机试真题】猜字谜(javapython)
猜字谜 时间限制:1s空间限制:256MB 限定浯言:不限 题目描述: 小王设计了一个简单的猜字谜游戏,游戏的谜面是一个错误的单词,比如nesw,玩 家需要猜出谜底库中正确的单词。猜中的要求如下: 对于某个谜面和谜底单词,满足下面任一条件都表示猜中: 变换顺序以后一样的,…...

制作真人手办有哪些不便?怎么解决?
相信很多朋友都喜欢拍摄写真,比如孩子生日的时候,结婚纪念的时候,写真照片能留存住很多美好的记忆。 不过随着科技的发展,大家已经不能满足只靠照片来记录生活了,越来越多的人开始盯上了手办这件物品。将真人的照片和…...

网络安全行业现在好混吗,工资水平怎么样?
前段时间看到有人私信:网络安全行业现在好混吗,工资水平怎么样?今天在这里做个回答,不知你所说的“好混吗”指的是什么? 薪资高,待遇好?不加班,活儿少?不受气࿰…...

基于 NXP + FPGA+Debian 高可靠性工业控制器解决方案
在工业系统开发中,**“稳定”**往往比“先进”更重要。设备一旦部署,生命周期动辄 5~10 年,系统重启或异常恢复成本高昂。 这时候,一套“值得托付”的软硬件组合,就显得尤为关键。 ✅ NXP —— 提供稳定、长期供货的工…...

PG 分区表的缺陷
简介 好久没发文,是最近我实在不知道写点啥。随着国产化进程,很多 oracle 都在进行迁移,最近遇到了一个分区表迁移之后唯一性的问题。oracle 数据库中创建主键或者唯一索引,不需要引用分区键,但是 PG 就不行ÿ…...

【Java开发日记】说一说 SpringBoot 中 CommandLineRunner
目录 1、CommandLineRunner SpringBoot中CommandLineRunner的作用 简单例子 多个类实现CommandLineRunner接口执行顺序的保证 通过实现Ordered接口实现控制执行顺序 通过Order注解实现控制执行顺序 Order 作用 2、ApplicationRunner 3、传递参数 4、源码跟踪 run()方…...
基于Flask框架的前后端分离项目开发流程是怎样的?
基于Flask框架的前后端分离项目开发流程可分为需求分析、架构设计、并行开发、集成测试和部署上线五个阶段。以下是详细步骤和技术要点: 一、需求分析与规划 1. 明确项目边界 功能范围:确定核心功能(如用户认证、数据管理、支付流程&#…...

Python控制台输出彩色字体指南
在Python开发中,有时我们需要在控制台输出彩色文本以提高可读性或创建更友好的用户界面。本文将介绍如何使用colorama库来实现这一功能。 为什么需要彩色输出? 提高可读性:重要信息可以用不同颜色突出显示更好的用户体验:错误信息…...

快速上手 Metabase:从安装到高级功能实战
文章目录 1. 引言:Metabase——轻量级的数据分析工具🎯 学完本教程你能掌握: 2. 安装 Metabase:本地部署实操2.1 环境准备2.2 使用 Docker 安装 Metabase2.3 初始化设置2.4 连接外部数据库 3. 第一个数据探索:5分钟创建…...
leetcode47.全排列II:HashSet层去重与used数组枝去重的双重保障
一、题目深度解析与重复排列问题 题目描述 给定一个可能包含重复数字的数组nums,返回其所有不重复的全排列。解集不能包含重复的排列,且排列可以按任意顺序返回。例如: 输入:nums [1,1,2]输出:[[1,1,2],[1,2,1],[2…...
文件上传漏洞深度解析:检测与绕过技术矩阵
文件上传漏洞深度解析:检测与绕过技术矩阵 引言:无处不在的文件上传风险 在当今的Web应用生态系统中,文件上传功能几乎无处不在。从社交媒体分享图片到企业文档管理系统,用户上传文件已成为现代Web应用的核心功能之一。然而&…...
基于 COM 的 XML 解析技术(MSXML) 的总结
✅ 一、COM 与 MSXML 简要说明 🔷 什么是 COM? COM(Component Object Model)是一种 Windows 平台下的组件技术,可以实现在不重新编译代码的前提下复用组件。 特点: 用 接口调用方式 解耦依赖;…...

96. 2017年蓝桥杯省赛 - Excel地址(困难)- 进制转换
96. Excel地址(进制转换) 1. 2017年蓝桥杯省赛 - Excel地址(困难) 标签:2017 省赛 1.1 题目描述 Excel 单元格的地址表示很有趣,它使用字母来表示列号。 比如, A 表示第 1 列,…...