当前位置: 首页 > ai >正文

每日脚本学习5.10 - XOR脚本

xor运算的简介

异或就是对于二进制的数据可以 进行同0异1 

简单的演示 : 

结果是 这个就是异或

异或的作用 1、比较两数是否相等  2、可以进行加密

加密就是需要key 

明文 :0b010110

key : 0b1010001

这个时候就能进行加密

明文 ^ key=密文

还有这个加密比较方便  就是解密也是这个逻辑

考虑一个问题: 如果这个key是比密文小的该怎么办  就是明文和key 不等的时候 我们就需要使用密码本模式(循坏使用密钥)

知道这个之后可以进行脚本的书写:

def xor_cipher(data: bytes, key: bytes) -> bytes:  #xor 操作的对象就是二进制的字节流"""使用 XOR 算法对数据进行加密或解密(XOR 加密解密是同一个操作)参数:data (bytes): 要加密或解密的数据key (bytes): 加密或解密使用的密钥返回:bytes: 加密或解密后的结果"""# key_bytes = key.encode('utf-8')  密钥进行utf8 转换   为了解决一些解密之后出现中文的情况result = bytearray()  # 这个的结果是字节流key_length = len(key)   # 获取长度 for i in range(len(data)):result.append(data[i] ^ key[i % key_length])   #密码本模式  解决data的数据比key大的情况  循坏使用密钥  return bytes(result)        #返回的数据是 字节# 示例用法
if __name__ == "__main__":# 示例数据和密钥(实际使用时请替换为真实数据)plaintext = b"Hello, World!"  # 要加密的明文 使用 b '' 转为字节key = b"SecretKey"             # 密钥# 加密encrypted = xor_cipher(plaintext, key)print(f"加密后: {encrypted.hex()}")# 解密(使用相同的密钥和算法)decrypted = xor_cipher(encrypted, key)print(f"解密后: {decrypted.decode('utf-8')}")  

http://www.xdnf.cn/news/5181.html

相关文章:

  • SSH终端登录与网络共享
  • AI与机器人学:从SLAM到导航的未来
  • HTTP/3展望、我应该迁移到HTTP/2吗
  • 【Linux】线程的同步与互斥
  • 物联网之使用Vertx实现MQTT-Server最佳实践【响应式】
  • 互联网大厂Java面试实录:Spring Boot与微服务架构在电商场景中的应用解析
  • MIT XV6 - 1.4 Lab: Xv6 and Unix utilities - find
  • vllm笔记
  • Linux510 ssh服务 ssh连接
  • 数学证明 | 逻辑的力量
  • 每天五分钟机器学习:拉格朗日对偶函数
  • 2025年渗透测试面试题总结-渗透测试红队面试三(题目+回答)
  • Pandas:数据处理与分析
  • 操作系统实验习题解析 上篇
  • UniRepLknet助力YOLOv8:高效特征提取与目标检测性能优化
  • 什么是静态住宅IP?为什么静态住宅IP能提高注册通过率?
  • 【部署】win10的wsl环境下调试dify的api后端服务
  • PyTorch API 2 - 混合精度、微分、cpu、cuda、可视化
  • torch.nn 下的常用深度学习函数
  • uniapp-商城-48-后台 分类数据添加修改弹窗bug
  • Kubernetes 使用 containerd 实现 GPU 支持及 GPU Operator 部署指南
  • Eclipse 插件开发 6 右键菜单
  • 从 JMS 到 ActiveMQ:API 设计与扩展机制分析(三)
  • 单脉冲前视成像多目标分辨算法——论文阅读
  • stm32之IIC
  • 基于STM32的居家环境监测报警Proteus仿真+程序设计+设计报告+讲解视频
  • 利用多AI协作实现AI编辑器高效开发:创新架构与实践基本构想
  • DeepSeek 实现趣味心理测试应用开发教程
  • JAVA自动装箱拆箱
  • 车载电子电器架构 --- 汽车网关概述