首页 > 编程语言 >使用 Python 进行替换加密

使用 Python 进行替换加密

时间:2022-09-06 08:11:06浏览次数:93  
标签:加密 Python 字母 我们 字母表 密钥 替换 输入

使用 Python 进行替换加密

大家好。我是阿齐兹·诺扬。在本文中,我们将讨论什么是替代加密,它是如何工作的,如何在 python 中进行高级和简单的替代加密。如果你的座位、玉米和饮料都准备好了,让我们开始吧。

  • 什么是替代品?
  • 它是如何工作的?
  • 简单的替代算法
  • 高级替代算法

什么是替代?

替代是一种传统的加密方法,例如塞萨尔加密、皮革刮擦或地毯处理。

它是如何工作的?

其实并不难理解。字母表中的字母被替换并替换为字母。

例如,假设我们的词是“PYTHON”。我们用 A 代替 P,用 F 代替 Y,用 E 代替 T,用 K 代替 H,用 B 代替 O,用 L 代替 N。创建这个密钥完全取决于我们。

正如我们从 Cesar 加密方法中知道的那样,我们不必将明文中的每个字母提前到我们分配为密钥的数字并在该位置使用字母。

这部分是一种比 cesar 困难得多的加密方法。分配键是非常免费的。我们可以使用任何我们想要的字母来代替我们想要的任何字母。

当我们更改字母的位置时,出现的密码是AFEKBN。

简单的替代算法

我们不需要简单算法中的库。

首先,我们定义一个名为 Alphabet 的变量。

定义字母表变量后,我们输入字母。

通过输入输入,我们从用户那里获取输入并将其定义为一个名为 message 的变量。我们将继续使用这个消息变量。

在下一步中,我们定义我们的键。我们将使用我们之前在程序中编写的密钥。

现在我们的钥匙已经准备好了,我们可以继续进行机械部分了。

我们要求用户选择一个键。我们将此输入绑定到一个名为键的变量。

在这里,if/elif/else 结构欢迎我们。

在这里,我们说key是否等于key或key2等值并执行我们的操作。同步识别工作完成后,我们现在进入最后一部分。

我们也做描述行中写的操作。多亏了这些代码,我们编写的消息将使用我们提供的密钥之一进行加密。

高级替代算法

我们需要一个用于高级 Subs 算法的库。

随机图书馆。它很先进,因为我们不需要定义密钥。以这种方式破解将非常困难。我们编写的代码将在用户每次输入消息时使用新密码对其进行加密。正好是32!表示概率。非常吓人的。它永远不会被打破(事实上,它可以)。

我们使用 import random 导入随机库。如果尚未安装,我们需要使用 pip install random 命令安装它。

同样,我们以相同的方式定义字母表并接收用户的输入。

事情从这里开始变得有点复杂。

不要让嵌套结构吓到你。 try 结构通过反复试验来工作,一直运行良好且运行速度非常快。在创建了一个名为 Key 的变量之后,这一次我们不希望用户提供密钥。我们想要从随机库中获取我们的密钥。这部分可能让你有点困惑,但你会明白的。可以说 Random 库的目的是使事物随机化。当我们在第三行说 key = random.choices(alphabet , k=len(alphabet)) 时,我们的意思是,在字母表中随机选择,但要保持字母表的长度。这给了我们一个 32 个字符的字母表以不同的方式对其进行排序。我们将其映射到关键变量。

使用 for 循环,我们更改输入的键而不是消息。实际上就是这样。但其中一个难点是,如果丢失了钥匙,就无法解决。您将需要使用密码破解技术,例如频率分析。我们将在下一篇文章中看到频率分析。现在让我们看看我们的结果。

如您所见,我们的 python 字是加密的。但这并不能证明它是先进的。所以让我们再次加密python单词。

每次您输入时,都会使用新密钥一次又一次地对其进行加密。我们有32个!有一把钥匙。

今天我们和你一起研究了 Python 的替换和算法示例。请继续关注更多。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/18410/04400608

标签:加密,Python,字母,我们,字母表,密钥,替换,输入
From: https://www.cnblogs.com/amboke/p/16660358.html

相关文章

  • 高斯消去法(Gauss-Jordan方法)的Python实现
    高斯消去法的改进形式为Gauss-JordanEliminationMethod,要求每一行的主元素所在列元素全部消去为0,除了主元素本身。区别如下:代码实现如下:#-*-coding:utf-8-*-#@......
  • Python 内置函数 repr() 和str()
    Python内置函数repr()和str()1.相同点repr()和str()都是python的内置函数,都是object类分方法,且都是将一个对象转变成字符串形式,每个类都默认有这两个方法。。。。一......
  • python 封装、抽象、多态和继承的实现
    封装的实现#封装classpeople:def__init__(self,name,money):self.name=nameself.__money=money#私有属性,只能类的内部使用--》数据封装......
  • python学习Day60
    Day60今日内容概要表查询数据准备及测试环境搭建ORM常见表查询关键字双下划线查询查看ORM底层SQL遇见ORM外键字段创建外键字段数据增删改查正反向概念基于对象......
  • 使用python画3D立体爱心
    原理1.使用python中的mtplotlib库。2.立体爱心面公式\[(x^2+\frac{9}{4}y^2+z^2-1)^3-\frac{9}{80}y^2*z^3-x^2*z^3=0\]点画法(实心)代码importmatplotlib.pyplotas......
  • SSL/TLS的认证和加密问题
    基本概念TLSTLS(TransportLayerSecurity)是保证数据在互联网上安全传输的加密协议;保证数据在传输的过程中中间的人无法解密,无法修改。TLS要解决的问题就是,能证明你,是......
  • 从零开始学python必看,“Python编程三剑客”,你值得拥有
    从0开始学Python,就问你一句:慌不慌?   第一本:《Python编程:从入门到实践》   第二本:《Python编程快速上手-让繁琐工作自动化》   第三本:《《Python极客......
  • python学习(元组、字典、set集合)
    (一)、列表 1、列表的嵌套 需求:输出数字9 解决:利用索引层级输出   2、列表的切片   (二)、元组:tuple1、列表与元组的区别?列表是可变的,元组是不可变的......
  • python(二)元组、字典、集合
    11.列表的嵌套##列表的嵌套、字符类型#list4=[1,'go','你好',1008.21,True['json','java','c++','go',[1,2,3,7]]]#print(list4[])##列表的切片,获取列表中指定范围的......
  • Python入门系列(十)一篇学会python文件处理
    文件处理在Python中处理文件的关键函数是open()函数。有四种不同的方法(模式)来打开一个文件"r"-读取-默认值。打开一个文件进行读取,如果文件不存在则出错。"a"-Ap......