每日脚本学习5.10 - XOR脚本

news2025/5/11 20:47:51

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.coloradmin.cn/o/2373414.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【编译原理】总结

核心 闭包,正则闭包 产生式(规则) 文法 G[S](,,P,S) 一组规则的集合 :非终结符 :终结符 P:产生式 S:开始符号 推导 归约 规范(最右&#xff…

docker创建一个centOS容器安装软件(以宝塔为例)的详细步骤

备忘:后续偶尔忘记了docker虚拟机与宿主机的端口映射关系,来这里查看即可: docker run -d \ --name baota \ --privilegedtrue \ -p 8888:8888 \ -p 8880:80 \ -p 8443:443 \ -p 8820:20 \ -p 8821:21 \ -v /home/www:/www/wwwroot \ centos…

OpenVLA:开源的视觉-语言-动作模型

1. 简介 让我们先来介绍一下什么是OpenVLA,在这里: https://openvla.github.io/ 可以看到他们的论文、数据、模型。 OpenVLA 是一个拥有 70亿参数的开源 **视觉-语言-动作(VLA)**模型。它是在 Open X-Embodiment 数据集 中的 97万…

Matlab/Simulink的一些功能用法笔记(4)

水一篇帖子 01--MATLAB工作区的保护眼睛颜色设置 默认的工作区颜色为白色 在网上可以搜索一些保护眼睛的RGB颜色参数设置 在MATLAB中按如下设置: ①点击预设 ②点击颜色,点击背景色的三角标符号 ③点击更多颜色,找到RGB选项 ④填写颜色参数…

Elasticsearch:我们如何在全球范围内实现支付基础设施的现代化?

作者:来自 Elastic Kelly Manrique SWIFT 和 Elastic 如何应对基础设施复杂性、误报问题以及日益增长的合规要求。 金融服务公司在全球范围内管理实时支付方面面临前所未有的挑战。SWIFT(Society for Worldwide Interbank Financial Telecommunication -…

matlab介绍while函数

MATLAB 中的 while 语句介绍 在 MATLAB 中,while 语句是一种循环结构,用于在满足特定条件时反复执行一段代码块。与 for 循环不同,while 循环的执行次数是动态的,取决于循环条件是否为真。 语法 while condition% 循环体代码 e…

如何解决 PowerShell 显示 “此系统上禁用了脚本运行” 的问题

在 Windows 11 或 10 的 PowerShell 中运行脚本时,你可能会遇到一个错误,提示系统上禁用了脚本运行。这是一种安全功能,而不是系统问题,旨在防止可能有害的脚本自动运行。然而,如果你需要运行脚本来完成某些任务,或者你在系统上做了软件开发或测试的环境,那么你需要在 P…

深入浅出之STL源码分析4_类模版

1.引言 我在上面的文章中讲解了vector的基本操作,然后提出了几个问题。 STL之vector基本操作-CSDN博客 1.刚才我提到了我的编译器版本是g 11.4.0,而我们要讲解的是STL(标准模板库),那么二者之间的关系是什么&#x…

初学者入门指南:什么是网络拓扑结构?

初学者入门指南:什么是网络拓扑结构? 在构建或学习计算机网络时,一个绕不开的核心概念便是“网络拓扑结构”(Network Topology)。它决定了网络中各个设备如何连接、通信以及如何扩展。理解网络拓扑不仅有助于我们更清…

Satori:元动作 + 内建搜索机制,让大模型实现超级推理能力

Satori:元动作 内建搜索机制,让大模型实现超级推理能力 论文大纲一、背景:LLM 推理增强的三类方法1. 基于大规模监督微调(SFT)的推理增强2. 借助外部机制在推理时进行搜索 (RLHF / 多模型 / 工具)3. 现有局限性总结 二…

SDC命令详解:使用all_outputs命令进行查询

相关阅读 SDC命令详解https://blog.csdn.net/weixin_45791458/category_12931432.html all_outputs命令用于创建一个输出端口对象集合,关于设计对象和集合的更详细介绍,可以参考下面的博客。 Synopsys:设计对象https://chenzhang.blog.csdn…

printf调试时候正常,运行时打印不出来

问题是在添加了 printf 功能后,程序独立运行时无法正常打印输出,而调试模式下正常。这表明问题可能与 printf 的重定向实现、标准库配置、或编译器相关设置有关。 解决: 原来是使用 Keil/IAR,printf可能需要启用 MicroLIB 或正确…

解决 TimeoutError: [WinError 10060] 在 FramePack项目中连接 Hugging Face 超时的问题

#工作记录 以下是针对 TimeoutError: [WinError 10060] 的完整排查方案,适用于 FramePack项目中。 (一般该错误的发生原因请重点排查Hugging Face模型仓库受限需要登录的情形) FramePack项目参考资料 FramePack部署(从PyCharm解…

分布式-Redis分布式锁

Redis实现分布式锁优点 (1)Redis有很高的性能; (2)Redis命令对此支持较好,实现起来比较方便 实现思路 (1)获取锁的时候,使用setnx加锁,并使用expire命令为锁…

UniRepLknet助力YOLOv8:高效特征提取与目标检测性能优化

文章目录 一、引言二、UniRepLknet 的框架原理(一)架构概述(二)架构优势 三、UniRepLknet 在 YOLOv8 中的集成(一)集成方法(二)代码实例 四、实验与对比(一)对…

自研时序大模型讲解(4月29日)直播回顾

4 月 29 日,清华团队揭秘:时序大模型如何让数据“活”起来线上直播圆满结束。清华大学软件学院博士生,IoTDB 原生机器学习引擎 AINode 研发同学刘雍在线上面向数千人次的时序数据分析人员与 AI 大模型行业关注者,就时序大模型的发…

k8s之ingress解释以及k8s创建业务的流程定义

matchLabels ingress Ingress 是反向代理规则,用来规定 HTTP/S 请求应该被转发到哪个 Service 上,比如根据请求中不同的 Host 和 url 路径让请求落到不同的 Service 上。 Ingress Controller 就是一个反向代理程序,它负责解析 Ingress 的反向…

从0开始学习大模型--Day05--理解prompt工程

提示词工程原理 N-gram:通过统计,计算N个词共同出现的概率,从而预测下一个词是什么。 深度学习模型:有多层神经网络组成,可以自动从数据中学习特征,让模型通过不断地自我学习不断成长,直到模型…

计算机视觉——基于树莓派的YOLO11模型优化与实时目标检测、跟踪及计数的实践

概述 设想一下,你在多地拥有多个仓库,要同时监控每个仓库的实时状况,这对于时间和精力而言,都构成了一项艰巨挑战。从成本和可靠性的层面考量,大规模部署计算设备也并非可行之策。一方面,大量计算设备的购…

【计算机视觉】OpenCV项目实战:OpenCV_Position 项目深度解析:相机定位技术

OpenCV_Position 项目深度解析:基于 OpenCV 的相机定位技术 一、项目概述二、技术原理(一)单应性矩阵(Homography)(二)算法步骤(三)相机内参矩阵 三、项目实战运行&#…