Encryption 一次性焊盘解决方案不正确
我的解决方案: A、B、C、D、E_ 123450 密文:DBCA 一次性键盘和按键:BCBC B C B C 2 3 2 3 D B C A 4 2 3 1 加密文本: B A B 2 1 2 我得到的加密单词是:BAAB,这不是一个单词,所以我认为它是不正确的Encryption 一次性焊盘解决方案不正确,encryption,Encryption,我的解决方案: A、B、C、D、E_ 123450 密文:DBCA 一次性键盘和按键:BCBC B C B C 2 3 2 3 D B C A 4 2 3 1 加密文本: B A B 2 1 2 我得到的加密单词是:BAAB,这不是一个单词,所以我认为它是不正确的 我已经研究过如何使用一次性垫,但我仍然不明白它。一次性垫不是那样的。 代码长度必须至少与文本长度相同。因为每次加密和解密文本时,您都要使用它一次 A one time pad encryption system represents
我已经研究过如何使用一次性垫,但我仍然不明白它。一次性垫不是那样的。 代码长度必须至少与文本长度相同。因为每次加密和解密文本时,您都要使用它一次
A one time pad encryption system represents the letters A-E with numbers 1-5 and a space with the number 0. Given the cipher text: DBCA
and the one time pad: BCBC
What is the encrypted word?
这是Python中一次性Pad加密的完整实现。
一次性焊盘使用异或操作在位上工作。当然,我们可以将数字0-5表示为位,但对B和D(2和4)进行异或运算将得到不在0-5范围内的6。不在范围内的数字会发生什么?还有,为什么你认为你的解决方案是错误的?我尝试了很多次,有时我也得到了6和8,但那不在范围内,没有任何关于超出范围的数字的说明。我认为我的解决方案是错误的,因为它是一个加密的单词,而BAAB不是一个单词。结果必须是一个真实的单词吗?“结果必须是一个真实的单词吗?”-不知道,问问你的老师。
f = open("plain.txt", "rb+")
kf = open ("key.txt", "rb" )
f2= open("cipher.txt", "r+")
allplain = f.read()
key =[]
key = kf.read()
# - encrypt plain text and save into cipher.txt
for i in range(len(allplain)):
k = chr (key[i])
p = chr (allplain[i])
c = chr ((ord(p)) ^ (ord(k)))
f2.write(c)