密码学实践-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,玩 家需要猜出谜底库中正确的单词。猜中的要求如下: 对于某个谜面和谜底单词,满足下面任一条件都表示猜中: 变换顺序以后一样的,…...
制作真人手办有哪些不便?怎么解决?
相信很多朋友都喜欢拍摄写真,比如孩子生日的时候,结婚纪念的时候,写真照片能留存住很多美好的记忆。 不过随着科技的发展,大家已经不能满足只靠照片来记录生活了,越来越多的人开始盯上了手办这件物品。将真人的照片和…...
网络安全行业现在好混吗,工资水平怎么样?
前段时间看到有人私信:网络安全行业现在好混吗,工资水平怎么样?今天在这里做个回答,不知你所说的“好混吗”指的是什么? 薪资高,待遇好?不加班,活儿少?不受气࿰…...
深入剖析AI大模型:大模型时代的 Prompt 工程全解析
今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...
dedecms 织梦自定义表单留言增加ajax验证码功能
增加ajax功能模块,用户不点击提交按钮,只要输入框失去焦点,就会提前提示验证码是否正确。 一,模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...
从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...
【决胜公务员考试】求职OMG——见面课测验1
2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...
leetcodeSQL解题:3564. 季节性销售分析
leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...
【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统
目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索(基于物理空间 广播范围)2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...
智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制
在数字化浪潮席卷全球的今天,数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具,在大规模数据获取中发挥着关键作用。然而,传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时,常出现数据质…...
HashMap中的put方法执行流程(流程图)
1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中,其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下: 初始判断与哈希计算: 首先,putVal 方法会检查当前的 table(也就…...
MFE(微前端) Module Federation:Webpack.config.js文件中每个属性的含义解释
以Module Federation 插件详为例,Webpack.config.js它可能的配置和含义如下: 前言 Module Federation 的Webpack.config.js核心配置包括: name filename(定义应用标识) remotes(引用远程模块࿰…...
Python网页自动化Selenium中文文档
1. 安装 1.1. 安装 Selenium Python bindings 提供了一个简单的API,让你使用Selenium WebDriver来编写功能/校验测试。 通过Selenium Python的API,你可以非常直观的使用Selenium WebDriver的所有功能。 Selenium Python bindings 使用非常简洁方便的A…...
