我正在尝试解决这一挑战,并且遇到了一些麻烦。首先,我对XOR不太熟悉。我知道XOR是对称的,因此解密该字符串所需要做的就是用我拥有的相同密钥再次对其进行加密。
我不希望得到任何答案,因此,如果可能的话,有人可以协助您启动一些伪代码,帮助您启动如何创建Python脚本以接受用户输入并解密其XOR加密字符串的伪代码?>
答案 0 :(得分:1)
让我这样解释。
XOR table
=========
0 XOR 0 = 0
0 XOR 1 = 1
1 XOR 0 = 1
1 XOR 1 = 0
所以,想象一个二进制数
10110011
而且,您有一个钥匙
11001100
如果对它们进行XOR,则会得到:
01111111
和我在一起?现在,将加密的数字与密钥进行异或,然后返回到原始状态。
10110011
这里也有一些伪代码。演示这项工作很繁琐。
Get the input-string from user
Get the encrypt-key from user #Assume it is also a string;
Loop through the input-string character by character
Convert character to its binary representation as a string
Concatenate that to input-string-converted-to-binary string
Loop through the encrypt-key character by character
Convert character to its binary representation as a string
Concatenate that to encrypt-key-converted-to-binary string
Get the length of the encrypt-key-converted-to-binary string
Calculate totalloops by dividing that into the length of the input-string-converted-to-binary string
Loop for totalloops
Loop for each character in the subsection of the input-string-converted-to-binary string
Calculate XOR of the digit
Concatenate into encrypted-value string
您现在有了二进制字符串。您可以反转将二进制字符串转换为字符的过程。但是,您可能会遇到无法打印的字符,这就是为什么长时间这样做会给您更多检查的原因。
答案 1 :(得分:-1)
user_number = input("Enter your number")
if( user_number. isdigit()):
print("User input is Number ")
else:
print("User input is string ")
因为它的两个输入不能被明确地重建 从其单一输出。