python中文版加密解密_python - 入门-对中英文加密解密

#加密程序,能够加密的内容是英文和汉字。同时加密并且解密

#就是说,一段话中既有中文又有英文,标点符号不用处理。

#加密规则,获取ascii码数字,加二十为加密,减20为解密,中间用|分割

def encrypt(ch):

if '\u4e00' <= ch <= '\u9fff':

#汉字环形加密

if (ord(ch)+20) > ord('\u9fff'):

return chr(ord('\u4e00')+ ord(ch) +19 - ord('\u9fff'))+ '|'

return chr(ord(ch)+20) + '|'

elif '\x41' <= ch <='\x5a' or '\x61' <= ch <= '\x7A':

#英文字母环形加密

if '\x61' <= ch <= '\x7A':

if (ord(ch)+20) > ord('\x7A'):

return chr(ord('\x41')+ ord(ch) +19 - ord('\x7A'))+ '|'

elif '\x41' <= ch <='\x5a' :

if (ord(ch)+20) > ord('\x5a') :

return chr(ord('\x61') + ord(ch) + 19 - ord('\x5a'))+ '|'

return chr(ord(ch)+20)+ '|'

else:

return ch+ '|'

def decrypt(ch):

#汉字解密

if '\u4e00' <= ch <= '\u9fff':

if ord(ch)-20 < ord('\u4e00'):

return chr(ord('\u9fff')- (ord('\u4e00')- (ord(ch)-19)))+ '|'

return chr(ord(ch)-20)+ '|'

#英文字母解密

elif '\x41' <=ch <='\x5a' or '\x61' <= ch <= '\x7A':

if '\x41' <=ch <='\x5a' :

if (ord(ch)-20) < ord('\x41'):

return chr(ord('\x7A')-(ord('\x41') - ord(ch)+19))+ '|'

elif '\x61' <= ch <= '\x7A':

if (ord(ch)-20) < ord('\x61'):

return chr(ord('\x5a')-(ord('\x61') - ord(ch)+19))+ '|'

return chr(ord(ch)-20)+ '|'

else:

return ch+ '|'

enstring = "我有钱的100abcdefghijklmnopqrstuvwxyz,ABCDEFGHIJKLMNOPQRSTUVWXYZ呢。"

deresult = ""

enresult = ""

for i in enstring:

enresult += encrypt(i)

print(enresult)

#戥|朝|铅|皘|1|0|0|u|v|w|x|y|z|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|,|U|V|W|X|Y|Z|a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|呶|,|

destring = enresult.split("|")[:-1]

for i in destring:

deresult += decrypt(i)

print(deresult)

#我|有|钱|的|1|0|0|a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z|,|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|呢|,|

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值