Vinegere Cypher,Python。特殊字符和白色空间的索引问题。有什么建议吗?
因此,我一直在研究这种格格内尔解密。我设法获得了输出,但是由于特殊字符和白色空间被抛弃的索引,输出是错误的。我想知道是否有人建议将加密密钥与秘密信息保持一致,因为它通过索引迭代。
import string
keys = list(string.ascii_lowercase)
def decoder(coded_message, offset):
real_message = []
real_index = 0
real_letter = []
new_index = 0
index = 0
for i in range(0, len(coded_message)):
if coded_message[i].isalpha() != True:
real_letter.append(coded_message[i])
else:
new_index = offset_key(offset, i)
index = keys.index(coded_message[i])
real_index = (index - new_index) % 26
real_letter.append(keys[real_index])
real_message = "".join(real_letter)
return(real_message)
keyword = "friends"
fourth_message = "dfc aruw fsti gr vjtwhr wznj? vmph otis! cbx swv jipreneo uhllj kpi rahjib eg fjdkwkedhmp!"
def offset_finder(keyword):
offset_list = []
for letter in keyword:
offset_list.append(keys.index(letter))
return offset_list
new_offset = offset_finder(keyword)
print(new_offset)
def offset_key(new_offset, index):
index = (index % 7)
offset = new_offset[index]
return offset
f_decoded_message = decoder(fourth_message, new_offset)
print(f_decoded_message)
So I been working on this Vigenere decryption. I managed to get an output, but the output is wrong due to the index being thrown off by special characters and white spaces. I was wondering if anyone had any suggesting in keep the encryption key aligned with the secret message as it iterates through the index.
import string
keys = list(string.ascii_lowercase)
def decoder(coded_message, offset):
real_message = []
real_index = 0
real_letter = []
new_index = 0
index = 0
for i in range(0, len(coded_message)):
if coded_message[i].isalpha() != True:
real_letter.append(coded_message[i])
else:
new_index = offset_key(offset, i)
index = keys.index(coded_message[i])
real_index = (index - new_index) % 26
real_letter.append(keys[real_index])
real_message = "".join(real_letter)
return(real_message)
keyword = "friends"
fourth_message = "dfc aruw fsti gr vjtwhr wznj? vmph otis! cbx swv jipreneo uhllj kpi rahjib eg fjdkwkedhmp!"
def offset_finder(keyword):
offset_list = []
for letter in keyword:
offset_list.append(keys.index(letter))
return offset_list
new_offset = offset_finder(keyword)
print(new_offset)
def offset_key(new_offset, index):
index = (index % 7)
offset = new_offset[index]
return offset
f_decoded_message = decoder(fourth_message, new_offset)
print(f_decoded_message)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)