已有183人关注
加密解密
还有0人有此问题
发表在Python图书答疑 2018-08-12 《零基础学Python》
是否精华
版块置顶:

请问老师,位异或,加密解密,当输入为中文或字符串 密码为数字时无法加密,将 int(pwd) 改为 str huo chr也不行,无法输出加密信息,老师这是为什么?只能加密数字么?

分享到:
精彩评论 1
无语_mrkj
学分:3155 LV11
2018-08-15
沙发

对于位异或运算符只能对数字进行操作,如果需要对中文或字母操作,需要将其转换为对应的ASCII码值,下面的代码实现了这个转换。

def strxor(str1,str2):

    orxstr=""  # 保存加密结果的字符串

    for i in range(0,len(str1)):

##        rst=ord(str1[i])^ord(str2[i])   # 加密字符串与要加密的字符串长度相等时

        rst=ord(str1[i])^ord(str2[0])   # 采用一个加密字符时

        orxstr=orxstr+ chr(rst)

    return orxstr

str1 = "坚持"

str2 = "12"

print("加密:",strxor(str1,str2))

str1 = strxor(str1,str2)

print("解密:",strxor(str1,str2))


首页上一页 1 下一页尾页 1 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照