ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

使用 Python 进行替换加密

2022-09-06 08:33:18  阅读:220  来源: 互联网

标签:加密 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,字母,我们,字母表,密钥,替换,输入
来源: https://www.cnblogs.com/amboke/p/16660358.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有