Python密码学XOR算法编码流程及乘法密码教程

标题:Python密码学XOR算法编码及乘法密码教程

XOR算法编码流程

1.输入明文和密钥。

2.将明文和密钥转化为二进制。

3.将明文和密钥按位异或。若明文和密钥同一位为0或1,则异或结果为0,否则为1。

4.将异或后的结果转化为十六进制,即为密文。

示例1:

明文:hello

密钥:world

1.明文和密钥转化为二进制为:

hello:01101000 01100101 01101100 01101100 01101111

world:01110111 01101111 01110010 01101100 01100100

2.按位异或得到结果为:

 01101000 01100101 01101100 01101100 01101111

异或 01110111 01101111 01110010 01101100 01100100

结果 00011111 00001010 00011110 00000000 00001001

3.将异或后的结果转化为十六进制:

00011111 00001010 00011110 00000000 00001001 → 1F 0A 1E 00 09

因此,hello通过XOR算法和密钥world的加密后的结果为1F0A1E0009。

乘法密码教程

乘法密码是一种基于代换和置换的密码算法,它使用线性代数中的矩阵加密算法。具体步骤如下:

1.输入明文和矩阵。

2.将明文转化为二进制。

3.将明文分为n个字母组成的一组,每个字母用一个数字表示(A对应0,B对应1...Z对应25)。

4.将明文矩阵和加密矩阵相乘,得到密文矩阵。

5.将密文矩阵转化为数字,即为密文。

示例2:

明文:MESSAGE

加密矩阵:

8 6 9

6 9 5

5 8 4

1.将明文转化为二进制为:

01001101 01000101 01010011 01010011 01000001 01000111 01000101

2.将明文分为3个字母组成的一组,得到明文矩阵:

[ 12 4 18 ]

[18 18 18 ]

[18 7 4 ]

3.将明文矩阵和加密矩阵相乘,得到密文矩阵:

[186 222 180 ]

[249 249 257 ]

[139 193 161 ]

4.将密文矩阵转化为数字,即为密文:

186 222 180 249 249 257 139 193 161

因此,MESSAGE通过乘法密码算法和加密矩阵的加密后的结果为186 222 180 249 249 257 139 193 161。

以上是Python密码学XOR算法编码及乘法密码教程的完整攻略,希望对您有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python密码学XOR算法编码流程及乘法密码教程 - Python技术站

(0)
上一篇 2023年5月31日
下一篇 2023年5月31日

相关文章

  • 盘点十个超级好用的高级Python脚本

    盘点十个超级好用的高级Python脚本 本文将介绍十个超级好用的高级Python脚本,这些脚本都可以帮助你更加高效地使用Python语言进行编程开发。下面将逐一介绍这些脚本及其用途。 1. Requests Requests是Python中的一个HTTP客户端库,它可以帮助你向其他服务器发送HTTP请求并获取响应。Requests允许你发送GET, POST…

    python 2023年5月30日
    00
  • python元组的概念知识点

    Python元组的概念知识点 什么是Python元组? Python中的元组(Tuple)是另一种有序、不可变的数据类型。元组是通过圆括号中用逗号分隔的多个值创建的。 与列表类似,元组可以包含任何类型的数据,但是它们不同之处在于元组的内容不能被修改。这使得元组任意长度的序列非常有用。 如何创建和访问元组 创建元组 可以通过将值用逗号分隔和在圆括号中包含它们来…

    python 2023年5月14日
    00
  • Python创建xml的方法

    标题:Python创建XML的方法 在Python中,有多种方式可以创建XML文档: 1. 使用xml.etree.ElementTree模块 xml.etree.ElementTree模块提供了创建、解析和操作XML文档的常用工具。具体步骤如下: 创建根节点对象并设定根节点名称和属性; 创建子节点并设定节点属性; 将子节点添加到根节点下; 将结果写入文件。…

    python 2023年6月3日
    00
  • python利用 keyboard 库记录键盘事件

    下面是 python 利用 keyboard 库记录键盘事件的完整攻略。 安装 keyboard 库 首先,需要安装 keyboard 库,可以使用 pip 命令进行安装: pip install keyboard 监听键盘事件 使用 keyboard 库,可以监听各种键盘事件,如按键、释放、组合键等。以下是一个示例程序: import keyboard d…

    python 2023年6月5日
    00
  • python计算日期之间的放假日期

    欢迎来到本站,我们今天来讲解一下如何用 Python 计算日期之间的放假日期。 1. 前言 在日常生活和工作中,我们经常需要计算两个日期之间的天数、工作日或者放假日。对于 Python 开发者来讲,这似乎并不是一件难事。本文将会讲到如何通过 Python 来快速地计算假期日期。 2. 安装工作日库 要计算假期日期,我们可以使用 Workalendar 库。它…

    python 2023年6月2日
    00
  • 一文搞懂关于 sys.argv 的详解

    一文搞懂关于 sys.argv 的详解 在Python中,我们可以使用命令行参数来实现一些特殊的操作。常见的处理命令行参数的方法是使用sys.argv。 sys.argv简介 sys.argv是Python系统模块sys中的一个系统参数列表,它是一个列表,其中第一个元素为程序名称,其余元素为传递给程序的命令行参数。如果没有传递任何参数,那么sys.argv默…

    python 2023年6月2日
    00
  • python机器学习理论与实战(六)支持向量机

    Python机器学习理论与实战(六)支持向量机 简介 支持向量机(Support Vector Machine,简称 SVM)是一个强大的分类算法,其具有优秀的泛化能力。在本文中,我们将介绍 SVM 的原理、实现及应用。 SVM 原理 SVM 的核心思想是:找到一个可以将不同类别的数据分割开的最优超平面。其中“最优”的定义是:在所有能成功分割不同类别数据的超…

    python 2023年5月23日
    00
  • Python asyncio异步编程常见问题小结

    Python asyncio异步编程常见问题小结 简介 异步编程是现代编程技术中的一个重要概念,它让我们的代码在请求等待过程中能够快速响应其他请求,提升了程序的执行效率。Python在3.4版本开始引入了asyncio库,支持异步I/O操作和并发编程,为Python的异步编程提供了强有力的支持。本篇文章将对Python asyncio异步编程常见问题进行梳理…

    python 2023年5月13日
    00
合作推广
合作推广
分享本页
返回顶部