python valueerror:chr()arg不在范围内(0x110000)
import enchant
message_decrypt= input("Enter the message you want to decrypt: ")
key= 0
def caesar_hack(message_decrypt,key):
final_message=""
d= enchant.Dict("en.US")
f= d.check(message_decrypt)
while f== False:
for characters in message_decrypt:
if ord(characters)<=90:
if ord(characters)-key<ord("A"):
final_message= final_message+ chr(ord(characters)-key)
else:
final_message= final_message+ chr(ord(characters)-key+26)
else:
if ord(characters)-key<ord("a"):
final_message=final_message+chr(ord(characters)-key)
else:
final_message= final_message+chr(ord(characters)-key+26)
key=key+1
f= d.check(message_decrypt)
else:
print(final_message)
caesar_hack(message_decrypt, key)
为什么此代码不起作用? 我正在尝试使用蛮力技术进行凯撒密码黑客。我有一个错误如下
有人可以帮助修复此代码。
import enchant
message_decrypt= input("Enter the message you want to decrypt: ")
key= 0
def caesar_hack(message_decrypt,key):
final_message=""
d= enchant.Dict("en.US")
f= d.check(message_decrypt)
while f== False:
for characters in message_decrypt:
if ord(characters)<=90:
if ord(characters)-key<ord("A"):
final_message= final_message+ chr(ord(characters)-key)
else:
final_message= final_message+ chr(ord(characters)-key+26)
else:
if ord(characters)-key<ord("a"):
final_message=final_message+chr(ord(characters)-key)
else:
final_message= final_message+chr(ord(characters)-key+26)
key=key+1
f= d.check(message_decrypt)
else:
print(final_message)
caesar_hack(message_decrypt, key)
Why doesn't this code work?
I'm trying to do a caesar cipher hack using the brute force technique. I get an error as below
Can someone please help fix this code.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我必须进行一些调整以使您的代码工作,这是一个工作版本:
我已经评论了我所做的主要更改。一个关键是在循环中检查
final_message
,而不是message_decrypt
(如果没有匹配(如果没有匹配),请再次将其重置为下一个循环)。另一个是,如果需要移动范围之外,则在字符序列中添加
26
。如果没有这样做,它就会生成不可打印的字符,因此检查失败而没有附魔错误。There's a couple of tweaks I had to make to get your code to work, here's a working version:
I've commented the main changes I made. One key one was checking
final_message
in the loop, notmessage_decrypt
(and resetting it again for the next loop if no match).The other was that your addition of
26
to the character ordinal if it was out of range needed to be moved. Without doing that, it was generating non-printable characters so the check was failing with an enchant error.