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排序算法之归并排序”的完整攻略。 什么是归并排序? 归并排序是一种基于比较的排序算法,在最坏情况下时间复杂度也为 $O(n\log_2n)$。它采用分而治之的思想,将待排序数组分成若干个子数组,逐层合并,最终得到有序的结果。归并排序的核心思想是把一个大问题分解成若干个小的问题解决,直到小问题不可分解,再把所有小问题的结果合并成…

    python 2023年6月5日
    00
  • Python 赋等级值

    赋值运算是计算机程序中最基础的操作之一。在Python中,我们可以使用赋值符号 = 把某个值(可以是变量、常量、表达式等)赋给一个变量,并在以后的程序中使用这个变量。Python的赋值建立在 “对象引用” 机制之上,也就是说,当我们把一个值赋给一个变量后,这个变量实际上是引用了这个值所在的内存地址,而不是把这个值拷贝到了这个变量中。 在Python中,赋值符…

    python-answer 2023年3月25日
    00
  • 在 uwsgi 上切换 python 版本

    【问题标题】:switch python version on uwsgi在 uwsgi 上切换 python 版本 【发布时间】:2023-04-04 16:22:01 【问题描述】: 我正在使用 nginx 和 uwsgi 运行 django 应用程序。它工作正常,但突然我不知道我改变了什么应用程序停止工作。 问题在于 uWsgi 的 python 版本…

    Python开发 2023年4月6日
    00
  • python的xpath获取div标签内html内容,实现innerhtml功能的方法

    在Python中,我们可以使用XPath来获取HTML页面中的元素和内容。本文将介绍如何使用XPath获取div标签内的HTML内容,实现innerhtml功能的方法。我们将提供两个示例,以帮助读者更好地理解如何实现这个目标。 步骤1:安装必要的库 在使用Python程序获取HTML内容之前,我们需要安装必要的库。我们将使用以下库: requests:用于发…

    python 2023年5月15日
    00
  • python 实现网上商城,转账,存取款等功能的信用卡系统

    Python 实现网上商城、转账、存取款等功能的信用卡系统攻略 1. 搭建基础环境 1.1 安装 Python 环境 Python 是一门强大且易于使用的编程语言,适合构建各种应用程序。对于本项任务,我们需要安装 Python 环境。 可以从官网 https://www.python.org/downloads/ 下载最新的 Python 版本,然后按照提示…

    python 2023年6月2日
    00
  • Python字符串对齐方法使用(ljust()、rjust()和center())

    当我们在Python程序中进行字符串处理时,经常会遇到需要对字符串进行对齐的情况。Python提供了三个方法ljust()、rjust()和center()来实现字符串左对齐、右对齐和居中对齐。 1. ljust() 方法 ljust() 方法用于将字符串左对齐,并使用空格填充至指定长度。该方法的语法为:str.ljust(width[, fillchar]…

    python 2023年6月5日
    00
  • 使用Python 统计文件夹内所有pdf页数的小工具

    使用Python 统计文件夹内所有pdf页数的小工具 背景 当我们需要查看PDF文件夹中所有文件的页数时,可能需要一个一个文件打开查看,手动记录页数。这样会非常耗费时间并且繁琐。因此,我们可以使用Python编写一个小工具来快速统计所有PDF文件的页数。 实现步骤 安装PyPDF2库: pip install PyPDF2 编写Python脚本 import…

    python 2023年6月6日
    00
  • Python爬虫的两套解析方法和四种爬虫实现过程

    Python爬虫的两套解析方法和四种爬虫实现过程 Python爬虫的两套解析方法 爬虫的解析是指通过代码从获取到的HTML页面中提取出有用信息的过程。目前常用的有两种解析方法。 1.正则表达式解析方法 正则表达式是一种用来描述匹配模式的工具,通过正则表达式可以快速地将目标数据从HTML页面中提取出来。正则表达式的优点是简单、快速、灵活,缺点是可维护性差,正则…

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