对于二元加法序列密码,已知输入序列M为0x23456789,密钥序列Z为0x87654321,求输出序列C。

本文主要是介绍对于二元加法序列密码,已知输入序列M为0x23456789,密钥序列Z为0x87654321,求输出序列C。,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题解:

1.分析:

加密:依次把明文序列与密钥序列中的对应项做异或,也叫二元加法运算

解密:密钥序列与密文序列中的对应项做二元加法运算(异或)

2.操作
 

(1)输入序列化为二进制

输入序列

转为二进制

2

0010

3

0011

4

0100

5

0101

6

0110

7

0111

8

1000

9

1001

tips(十进制化二进制小技巧):

二进制每一位数从右到左,代表十进制从小到大:1、2、4、8、16……

我们假设转换的十进制数为X,在其中选择最大能减的数(减完>=0),减去,在所选数代表的位数内容变1,如此重复,直到X剩余数值为0

举例:

x=9,最大能减的二进制数是8,减去,第四位数内容变1(1000),现x=1,最大能减的二进制数是1,减去,第一位数内容变1(1001),现x=0,结束

这里是0x是16进制,就先把16进制转10进制就行

(2)密钥序列化为二进制

密钥序列

转为二进制

8

1000

7

0111

6

0110

5

0101

4

0100

3

0011

2

0010

1

0001

(3)求输出序列C

这里我们用到加密操作:明文序列与密钥序列中的对应项做异或

异或运算的基本规则:
  • 同值取0,异值取1:即如果两个二进制位相同,则异或结果为0;如果两个二进制位不同,则异或结果为1。例如,0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0
计算结果:

输入序列

密钥序列

异或结果

化为十进制

0010

1000

1010

A

0011

0111

0100

4

0100

0110

0010

2

0101

0101

0000

0

0110

0100

0010

2

0111

0011

0100

4

1000

0010

1010

A

1001

0001

1000

8

C=0xA42024A8

tips(二进制化十进制小技巧):

二进制每一位数从右到左,代表十进制从小到大:1、2、4、8、16……

将数值对应位数下二进制内容为1的数值相加,和即十进制,这里是0x是16进制,就先把10进制转16进制就行

举例:

1011

= 1x8+0x4+1x2+1x1

=8+2+1

=11

这篇关于对于二元加法序列密码,已知输入序列M为0x23456789,密钥序列Z为0x87654321,求输出序列C。的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1104471

相关文章

【测试】输入正确用户名和密码,点击登录没有响应的可能性原因

目录 一、前端问题 1. 界面交互问题 2. 输入数据校验问题 二、网络问题 1. 网络连接中断 2. 代理设置问题 三、后端问题 1. 服务器故障 2. 数据库问题 3. 权限问题: 四、其他问题 1. 缓存问题 2. 第三方服务问题 3. 配置问题 一、前端问题 1. 界面交互问题 登录按钮的点击事件未正确绑定,导致点击后无法触发登录操作。 页面可能存在

uva 10131 最长子序列

题意: 给大象的体重和智商,求体重按从大到小,智商从高到低的最长子序列,并输出路径。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <cmath>#include <stack>#include <vect

uva 10069 DP + 大数加法

代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <cmath>#include <stack>#include <vector>#include <queue>#include <map>#include <cl

顺序表之创建,判满,插入,输出

文章目录 🍊自我介绍🍊创建一个空的顺序表,为结构体在堆区分配空间🍊插入数据🍊输出数据🍊判断顺序表是否满了,满了返回值1,否则返回0🍊main函数 你的点赞评论就是对博主最大的鼓励 当然喜欢的小伙伴可以:点赞+关注+评论+收藏(一键四连)哦~ 🍊自我介绍   Hello,大家好,我是小珑也要变强(也是小珑),我是易编程·终身成长社群的一名“创始团队·嘉宾”

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出 在数字化时代,文本到语音(Text-to-Speech, TTS)技术已成为人机交互的关键桥梁,无论是为视障人士提供辅助阅读,还是为智能助手注入声音的灵魂,TTS 技术都扮演着至关重要的角色。从最初的拼接式方法到参数化技术,再到现今的深度学习解决方案,TTS 技术经历了一段长足的进步。这篇文章将带您穿越时

POJ1631最长单调递增子序列

最长单调递增子序列 import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.io.PrintWriter;import java.math.BigInteger;import java.util.StringTokenizer;publ

leetcode105 从前序与中序遍历序列构造二叉树

根据一棵树的前序遍历与中序遍历构造二叉树。 注意: 你可以假设树中没有重复的元素。 例如,给出 前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7] 返回如下的二叉树: 3/ \9 20/ \15 7   class Solution {public TreeNode buildTree(int[] pr

解决Office Word不能切换中文输入

我们在使用WORD的时可能会经常碰到WORD中无法输入中文的情况。因为,虽然我们安装了搜狗输入法,但是到我们在WORD中使用搜狗的输入法的切换中英文的按键的时候会发现根本没有效果,无法将输入法切换成中文的。下面我就介绍一下如何在WORD中把搜狗输入法切换到中文。

当你输入一个网址后都发生什么

原文:http://igoro.com/archive/what-really-happens-when-you-navigate-to-a-url/  作为一个软件开发者,你一定会对网络应用如何工作有一个完整的层次化的认知,同样这里也包括这些应用所用到的技术:像浏览器,HTTP,HTML,网络服务器,需求处理等等。 本文将更深入的研究当你输入一个网址的时候,后台到底发生了一件件什么样的事~

如何将一个文件里不包含某个字符的行输出到另一个文件?

第一种: grep -v 'string' filename > newfilenamegrep -v 'string' filename >> newfilename 第二种: sed -n '/string/!'p filename > newfilenamesed -n '/string/!'p filename >> newfilename