python中如何实现对中文的凯撒加密
自己写一个东西的时候涉及到加密问题,想到利用ASCII码来实现,后来查阅资料时发现这叫凯密码,那么这种加密方式如何对中文适用呢 asciord()
凯撒
chr() 本帖最后由 xiaosi4081 于 2020-6-10 08:12 编辑
a = ""
b = ""
for each in a:
b = b + str(ord(each))
print(chr(b)) xiaosi4081 发表于 2020-6-10 07:47
a = ""
b = ""
for each in a:
是的,但是如果不考虑中文字符的话,只用考虑128个字符的情况下,对应的解密函数很好写,用到中文的话怎么解密呢 sehnsucht 发表于 2020-6-10 07:56
是的,但是如果不考虑中文字符的话,只用考虑128个字符的情况下,对应的解密函数很好写,用到中文的话怎么 ...
把chr的2换成-2,再用chr弄一次 sehnsucht 发表于 2020-6-10 07:56
是的,但是如果不考虑中文字符的话,只用考虑128个字符的情况下,对应的解密函数很好写,用到中文的话怎么 ...
设个最佳吧{:10_254:}{:10_287:} sehnsucht 发表于 2020-6-10 07:56
是的,但是如果不考虑中文字符的话,只用考虑128个字符的情况下,对应的解密函数很好写,用到中文的话怎么 ...
你对中文进行凯撒加密应该要找到中文的 ASCII 码范围吧
然后用for 遍历加密,如果加密时 +3 ASCII那么解密时候就 -3 ASCII
xiaosi4081 发表于 2020-6-10 07:47
a = ""
b = ""
for each in a:
ord得到的不是数字吗?字符串b跟数字相加不报错吗{:10_261:}
还有chr不是只接受一个参数吗,两个参数是什么用法{:10_245:} hrp 发表于 2020-6-10 08:09
ord得到的不是数字吗?字符串b跟数字相加不报错吗
还有chr不是只接受一个参数吗,两个参数是 ...
谢谢提醒 xiaosi4081 发表于 2020-6-10 08:11
谢谢提醒
是的,,没有看太懂 Twilight6 发表于 2020-6-10 08:08
你对中文进行凯撒加密应该要找到中文的 ASCII 码范围吧
然后用for 遍历加密,如果加密时 +3 ASCII ...
是的,我在找范围中……不知道有什么更简单的方式,这个范围好像挺大的 Twilight6 发表于 2020-6-10 08:08
你对中文进行凯撒加密应该要找到中文的 ASCII 码范围吧
然后用for 遍历加密,如果加密时 +3 ASCII ...
……早晨没睡醒,想复杂了 sehnsucht 发表于 2020-6-10 08:14
是的,我在找范围中……不知道有什么更简单的方式,这个范围好像挺大的
我去查了下 百度也没明确访问,应该是因为中途穿插着字符吧? 如果找出范围就好办了,难点就在汉字 ASCII码范围问题 sehnsucht 发表于 2020-6-10 08:17
……早晨没睡醒,想复杂了
不考虑范围很好做到
a = input('请输入汉字明文:')
# 不考虑汉字 ASCII码范围进行加密
cipher = ''
for i in a:
cipher+=(chr(ord(i)+3))
print('密文密码为:',cipher)
# 对汉字密文进行解密
clear = ''
for i in cipher:
clear += (chr(ord(i)-3))
print('明文密码:',clear) Twilight6 发表于 2020-6-10 08:25
不考虑范围很好做到
对,我想到了,考虑到汉字后面还有很多字符,所以不需要考虑范围,一开始是想实现一个一一对应的的密码,所以一直在想范围 sehnsucht 发表于 2020-6-10 08:38
对,我想到了,考虑到汉字后面还有很多字符,所以不需要考虑范围,一开始是想实现一个一一对应的的密码, ...
哈哈~那问题解决了 ,就给个最佳~
页:
[1]