【无标题】

第二周

XOR

一种运算,逻辑很简单。如果位相同,则结果为 0。如果位不同,则结果为 1。一般用于运算加密或者去检验错误。在python用^来表示。
因为没有找到合适的题目所以更重于xor的代码学习
首先是关于xor的完整代码

加密

def xor_encrypt(key, plaintext):
#引入函数xor
ciphertext = “”
for i in range(len(plaintext)):
# 用密钥按位异或明文字符得到密文字符并打印出来len用来返回数值 将明文和key的每一位去进行xor运算
char = chr(ord(plaintext[i]) ^ ord(key[i % len(key)])) .
#chr是将整数转换为它的 unicode 字符并返回它ord则是把明文和key转化为unicode 字符来进行后面的异或运算
ciphertext += char
#将加密的chr来加入到密文中
return ciphertext

解密

def xor_decrypt(key, ciphertext):
#因为异或的特性将密文再与key进行一次异或就可以得到明文
plaintext = “”
for i in range(len(ciphertext)):
# 用密钥按位异或密文字符得到明文字符
char = chr(ord(ciphertext[i]) ^ ord(key[i % len(key)]))
#同上
plaintext += char
return plaintext

测试

#用到上方的俩个函数
key = “secret_key”
plaintext = “Hello World!”
ciphertext = xor_encrypt(key, plaintext)
print(“加密后的密文:”, ciphertext)
decrypted_text = xor_decrypt(key, ciphertext)
print(“解密后的明文:”, decrypted_text)en(plaintext)):
# 用密钥按位异或明文字符得到密文字符
char = chr(ord(plaintext[i]) ^ ord(key[i % len(key)]))
ciphertext += char
return ciphertext

def xor_decrypt(key, ciphertext):
plaintext = “”
for i in range(len(ciphertext)):
# 用密钥按位异或密文字符得到明文字符
char = chr(ord(ciphertext[i]) ^ ord(key[i % len(key)]))
plaintext += char
return plaintext

运行结果

key = “secret_key”
plaintext = “Hello World!”
ciphertext = xor_encrypt(key, plaintext)
print(“加密后的密文:”, ciphertext)
decrypted_text = xor_decrypt(key, ciphertext)
print(“解密后的明文:”, decrypted_text)

接下来是一些相关的代码

1.python string encode()这个可以将给定字符串返回编码版本编码一般默认为Utf-8 编码就像是这样
string_utf = string.encode()
2.python zip()该函数可以将可迭代对象组合并放在同一个数组里面并返回
languages = [‘Java’, ‘Python’, ‘JavaScript’]
versions = [14, 3, 6]
#俩组数,俩个处理对象
result = zip(languages, versions)
#zip将他们组合起来
print(list(result))
输出组合以后的列表
结果: [(‘Java’, 14), (‘Python’, 3), (‘JavaScript’, 6)]
3.import binascii该模块包含了很多的二进制转换为各类代码和进制的途径比如binascii.b2a_hex二进制转十六进制
binascii.a2b_base64 二进制转base64

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值