email网站注册/线上推广渠道有哪些方式

email网站注册,线上推广渠道有哪些方式,阿里云wordpress搭建网站,php实验报告企业网站开发对于希尔加解密很多writeup都说用在线工具,所以研究了一下,写了一个方便的加解密python代码,根据给定的字母表及私钥字符串,尝试不同纬度不同重叠的加密矩阵输出加解密结果。运行效果如下: 代码文件Hill希尔加解密_fi…

对于希尔加解密很多writeup都说用在线工具,所以研究了一下,写了一个方便的加解密python代码,根据给定的字母表及私钥字符串,尝试不同纬度不同重叠的加密矩阵输出加解密结果。运行效果如下:

代码文件Hill希尔加解密_final.py

import numpy as np
import string
# 导入自定义模块以创建矩阵和转换字符串
from util_create_matrix import create_matrix_from_list, create_numbers_from_string# 定义了使用的字符集,包括所有小写字母、空格、逗号和句点
alphabet = "abcdefghijklmnopqrstuvwxyz ,."
# 密钥短语,用于生成加密/解密所需的密钥矩阵
key_phrase = "www.verymuch.net"def mod_inverse(a, m):"""计算模m下a的逆元。逆元是满足 (a * x) % m == 1 的整数x。"""a = a % mfor x in range(1, m):if (a * x) % m == 1:return xreturn Nonedef matrix_mod_inv(matrix, modulus):"""计算给定矩阵在模modulus下的逆矩阵。这是通过先计算矩阵的行列式及其模逆,然后应用数学公式来实现的。"""det = int(np.round(np.linalg.det(matrix)))  # 计算行列式并取整det_inv = mod_inverse(det, modulus)  # 计算行列式的模逆matrix_modulus_inv = (det_inv * np.round(det * np.linalg.inv(matrix)).astype(int) % modulus)return matrix_modulus_invdef char_to_num(char):"""将字符转换为对应的数字。这里将空格、逗号和句号也视为字符集的一部分。"""if char == ' ':return 26elif char == ',':return 27elif char == '.':return 28else:return string.ascii_lowercase.index(char)def num_to_char(num):"""将数字转换回对应的字符。与char_to_num函数相对应。"""if num == 26:return ' 'elif num == 27:return ','elif num == 28:return '.'else:return string.ascii_lowercase[num]def prepare_text(text, block_size):"""准备文本以适应加密/解密过程,确保文本长度是block_size的倍数,不足部分以'x'填充。"""while len(text) % block_size != 0:text += 'x'return textdef text_to_numbers(text):"""将文本字符串转换为数字序列,每个字符映射到其在字母表中的位置。"""return [char_to_num(char) for char in text]def numbers_to_text(numbers):"""将数字序列转换回文本字符串,每个数字映射回其对应的字符。"""return ''.join(num_to_char(number) for number in numbers)def hill_encrypt_decrypt(text, key_matrix, operation="encrypt"):"""执行希尔加密或解密操作。根据操作类型,此函数使用key_matrix直接加密,或首先计算其逆矩阵进行解密。"""block_size = key_matrix.shape[0]  # 确定密钥矩阵的大小,用于分块大小text = prepare_text(text, block_size)  # 根据分块大小调整文本长度text_numbers = text_to_numbers(text)  # 将文本转换为数字序列result = []  # 存储加密或解密结果的数字序列# 如果是解密操作,计算密钥矩阵的逆矩阵if operation == "decrypt":key_matrix = matrix_mod_inv(key_matrix, 29) # 对每个文本块执行矩阵乘法和模运算for i in range(0, len(text_numbers), block_size):block = np.array(text_numbers[i:i+block_size])encrypted_block = np.dot(key_matrix, block) % 29  # 模29保证结果在字母表范围内result.extend(encrypted_block)return numbers_to_text(result)  # 将数字序列转换回文本# 主函数,负责用户交互和调用加密/解密函数
def main():choice = input("请选择操作:\n1. 加密\n2. 解密\n")  # 用户选择加密还是解密text = input("请输入明文:" if choice == '1' else "请输入密文:")  # 获取用户输入的文本key_numbers = create_numbers_from_string(alphabet, key_phrase, 0)  # 根据密钥短语生成密钥数字序列# 尝试不同的密钥矩阵维度和重叠度进行加密/解密for dim in range(2, 5):  # 维度从2到4for overlap in range(1, 5):  # 重叠度从1到4if overlap > dim:break  # 如果重叠度大于维度,则不再尝试try:key_matrix = np.array(create_matrix_from_list(key_numbers, dim, overlap))if choice == '1':encrypted = hill_encrypt_decrypt(text, key_matrix, "encrypt")print(f"使用dim={dim}, overlap={overlap}加密后的密文:{encrypted}")else:decrypted = hill_encrypt_decrypt(text, key_matrix,"decrypt")print(f"使用dim={dim}, overlap={overlap}解密后的明文:{decrypted}")except ValueError as e:print(e)break  # 如果出现异常,则停止尝试当前维度和重叠度的组合if __name__ == "__main__":main()  # 运行主函数'''
请选择操作:
1. 加密
2. 解密
1
请输入明文:love and peaceee
使用dim=2, overlap=1加密后的密文:....vveeddbbqqcc
使用dim=2, overlap=2加密后的密文:....vveeddbbqqcc
使用dim=3, overlap=1加密后的密文: cgweozrcmhmrik, q
使用dim=3, overlap=2加密后的密文: hcwwezhrmmhrmi,u 
使用dim=3, overlap=3加密后的密文:   wwwzzzmmmrrr,,,
使用dim=4, overlap=1加密后的密文:waoootu.epj,nv o
使用dim=4, overlap=2加密后的密文:wspooq,uedhjnyt 
使用dim=4, overlap=3加密后的密文:wesaonqte.dpnjyv
使用dim=4, overlap=4加密后的密文:wwwwooooeeeennnn1. 加密
2. 解密
2
请输入密文:waoootu.epj,nv o
Singular matrix
使用dim=3, overlap=1解密后的明文:tpzhhnkhfxvqotthau
使用dim=3, overlap=2解密后的明文:ftgczahelg .ielcjq
Singular matrix
使用dim=4, overlap=1解密后的明文:love and peaceee
使用dim=4, overlap=2解密后的明文:e.nlnldaayiekhkb
使用dim=4, overlap=3解密后的明文:znwwvkzandgqvdex
Singular matrix
'''

代码文件util_create_matrix.py

def create_matrix_from_list(numbers, dim=4, overlap=1):"""根据提供的数字列表、矩阵维度和重叠度,生成指定维度的矩阵。参数:- numbers: 数字列表,用于填充矩阵。- dim: 整数,表示矩阵的维度(例如2x2, 3x3, 4x4等)。- overlap: 整数,指定相邻行之间的重叠数字数量。返回:- 生成的矩阵,为dim x dim大小。如果提供的数字不足以填满矩阵,返回错误信息。"""# 计算根据维度和重叠度需要的数字总数total_numbers_needed = dim * dim - (dim - 1) * overlap# 如果提供的数字不足以构成矩阵,返回错误信息if len(numbers) < total_numbers_needed:return "提供的数字不足以形成指定维度的矩阵。"# 构造矩阵matrix = []for i in range(dim):start_index = i * (dim - overlap)  # 计算当前行起始数字的索引end_index = start_index + dim  # 计算当前行结束数字的索引row = numbers[start_index:end_index]  # 提取当前行的数字matrix.append(row)  # 将当前行添加到矩阵中return matrix# 示例:使用整数参数调用函数并打印结果
numbers_list = [22, 22, 22, 28, 21, 4, 17, 24, 12, 20, 2, 7, 28, 13, 4, 19]
dim = 4  # 矩阵的维度
overlap = 1  # 行之间的重叠数字数量
matrix = create_matrix_from_list(numbers_list, dim, overlap)
print(matrix)def create_numbers_from_string(alphabet, key_string, start=0):"""根据给定的字母表和字符串,返回一个数字列表,表示字符串中每个字符在字母表中的位置。位置计数从start参数指定的数字开始。参数:- alphabet: 字符串,定义可用字符的序列。- key_string: 字符串,需要转换为数字列表的文本。- start: 整数,数字列表的起始值,默认为0。返回:- 数字列表,其中包含key_string中每个字符对应的位置。"""return [alphabet.index(char) + start for char in key_string]# 示例:将字符串转换为数字列表并打印结果
alphabet = "abcdefghijklmnopqrstuvwxyz ,."
print(create_numbers_from_string(alphabet, "www.verymuch.net", 0))

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/750952.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

8:00面试,8:06就出来了,问的问题有点变态。。。

从小厂出来&#xff0c;没想到在另一家公司又寄了。 到这家公司开始上班&#xff0c;加班是每天必不可少的&#xff0c;看在钱给的比较多的份上&#xff0c;就不太计较了。没想到9月一纸通知&#xff0c;所有人不准加班&#xff0c;加班费不仅没有了&#xff0c;薪资还要降40%…

matlab simulink 工业现场漆包机烘炉模糊PID控制算法

1、内容简介 略 70-可以交流、咨询、答疑 2、内容说明 matlab simulink 工业现场漆包机烘炉模糊PID控制算法 第五章 控制算法仿真与分析 在第二章系统分析结合工业现场漆包机烘炉数学模型详细分析模糊PID控制算法以及解耦控制算法的优缺点、实现原理&#xff0c;为本章算法…

第8节课------列生成与分支定价法

列生成与分支定价法 1. 列生成 通过迭代的方式来构建和解决一个“受限”的主问题,并通过解决一系列相关的子问题来动态地生成新的变量(或称列),这些新变量有可能改进主问题的解。 原问题新添加的这一列可以通过对偶问题的行来计算。 2. 列生成的详细说明 对于原来的…

【TB作品】数字电压表设计,MSP430,电压表,Proteus仿真,分档位

文章目录 题目要求第1版方案第2版方案代码介绍获取代码和仿真 题目要求 33、数字电压表设计 基本要求: 了解电压表的工作原理。 对0~2.5V的模拟电压进行循环采集 采集的数据进行A/D转换后用LCD屏显示测量值,显示精度0.0001 用键盘选择测量范围(分档) 超过测量范围时指示灯持续…

基于springboot+vue实现员工信息管理系统项目【项目源码+论文说明】

基于springbootvue实现员工信息管理系统演示 引言 随着计算机技术的飞速发展&#xff0c;计算机在企业管理中应用的普及&#xff0c;利用计算机在实现企业人事档案的管理势在必行。当今社会正快速向信息化社会前进&#xff0c;信息自动化的作用也越来越大。从而使我们从繁杂的…

上位机图像处理和嵌入式模块部署(qmacvisual跳转语句)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 前面我们依次讨论了判断语句和结束判断语句&#xff0c;今天我们继续学习跳转语句。从功能上面来说&#xff0c;跳转语句和判断语句较为类似。不过…

时间序列预测的零样本学习是未来还是炒作:TimeGPT和TiDE的综合比较

最近时间序列预测预测领域的最新进展受到了各个领域&#xff08;包括文本、图像和语音&#xff09;成功开发基础模型的影响&#xff0c;例如文本&#xff08;如ChatGPT&#xff09;、文本到图像&#xff08;如Midjourney&#xff09;和文本到语音&#xff08;如Eleven Labs&…

【JS】html字符转义

需求 将html转为字符串将html字符串转义&#xff0c;比如<div>转为<div> 码 /*** html标签字符转义* param {Stirng} str 要转换的html字符* returns String 返回转义的html字符串*/ const elToStr str > str.replaceAll(<, <).replaceAll(>, >)…

ChatGPT有身体了,能走向千家万户吗?

3月13日&#xff0c;OpenAI投资的人形机器人——Figure 01迎来重磅更新&#xff0c;接入最新版ChatGPT后&#xff0c;它能和人交流描述眼前看到的事物。在视频中&#xff0c;Figure 的人形机器人&#xff0c;可以完全与人类流畅对话&#xff0c;还能理解人的自然语言指令进行抓…

搞懂分布式技术:缓存更新的套路

目录 缓存更新的套路 Cache Aside Pattern Read/Write Through Pattern Read Through Write Through Write Behind Caching Pattern 再多唠叨一些 缓存更新的套路 看到好些人在写更新缓存数据代码时&#xff0c;先删除缓存&#xff0c;然后再更新数据库&#xff0c;而后续的操作…

代码随想录 -- 回溯算法

文章目录 回溯算法理论什么是回溯法回溯法的效率回溯法解决的问题理解回溯法回溯法模板 组合问题I描述题解优化 组合总和III描述题解 电话号码的字母组合描述题解 组合总和描述题解 组合总和II描述题解 分割回文串描述题解 复原IP地址描述题解 子集描述题解 子集II描述题解 递增…

shallowReactive浅层式响应对象

一、 reactive 和ref 都是深层响应式对象: 就是不管对象有多少层&#xff0c;修改此对象任一属性都会响应式处理 shallowReactive 和shallowRef 浅层响应式对象: 只会修改第一层对象&#xff0c;修改此对象第一层属性&#xff0c;视图会有同步变化&#xff0c;非第一层&#xf…

WorkPlus Meet局域网视频会议软件的领先解决方案

局域网视频会议软件在现代企业中发挥着重要的作用&#xff0c;而在众多选项中&#xff0c;为何选择WorkPlus Meet作为局域网视频会议软件&#xff1f; 选择局域网视频会议软件时需要考虑到企业的需求。WorkPlus Meet提供了稳定、高效的局域网视频会议功能&#xff0c;能够满足…

关于d3dx9_43.dll文件丢失的解决办法,六种详细方法

当d3dx9_43.dll文件缺失时&#xff0c;系统会显示错误信息来提示用户。这些错误信息可能会包含类似于"d3dx9_43.dll未找到"或"找不到d3dx9_43.dll"等字样。通常出现这样的字样那就是导致应用程序通常无法正常启动或执行相关功能。那么出现这样的功能有什么…

哔哩哔哩后端Java一面

前言 作者&#xff1a;晓宜 个人简介&#xff1a;互联网大厂Java准入职&#xff0c;阿里云专家博主&#xff0c;csdn后端优质创作者&#xff0c;算法爱好者 最近各大公司的春招和实习招聘都开始了&#xff0c;这里分享下去年面试B站的的一些问题&#xff0c;希望对大家有所帮助…

Centos7安装ffmpeg

Centos7安装ffmpeg 用到的包压缩并安装 用到的包 压缩并安装 tar xvJf ffmpeg-5.0.1.tar.xz yum install -y gcctar -zxvf yasm-1.3.0.tar.gz cd yasm-1.3.0 ./configure make && make install yasm --versionyum install -y bzip2tar jxvf nasm-2.14.02.tar.bz2 cd n…

Spring MVC文件上传配置

版权声明 本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl 文件上传 Spring MVC文件上传基于Servlet 3.0实现&#xff1b;示例代码如下&#xff1a; Overrideprotected void customizeRegistration(ServletRegistration.Dynamic reg…

Guitar Pro 8.1功能介绍及如何安装安装破解教程

音乐创作是许多音乐人的核心工作&#xff0c;而吉他作为其中最为常用的乐器之一&#xff0c;其创作和演奏的重要性也不言而喻。在创作过程中&#xff0c;如何更好地记录和编辑音乐成为了许多音乐人所面临的挑战。而Guitar Pro 8.1则是一款专业的吉他音乐编辑软件&#xff0c;它…

T1.数据库MySQL

二.SQL分类 2.1 DDL 2.1.1数据库操作 1). 查询所有数据库 show databases ; 2). 查询当前数据库 select database(); 3)创建数据库 create database [if not exists] 数据库名 [default charset 字符集] [collate 排序规则] ; 4&#xff09;删除数据库 drop database …

【机器学习系列】M3DM工业缺陷检测部署与训练

一.基础资料 1.Git 地址 地址 2.issues issues 3.参考 参考 csdn 二.服务器信息 1.GPU 服务器 GPU 服务器自带 CUDA 安装(前提是需要勾选上)CUDA 需要选择大于 11.3 的版本登录服务器后会自动安装 GPU 驱动 2.CUDA 安装 GPU 服务器自带 CUDA CUDA 版本查看 3.登录信…