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

C++实现XOR加解器

#include <Windows.h>
#include <iostream>
#include <fstream>
#include <string>// 加解密函数,使用XOR运算
void XORCrypt(char* data, int size, const std::string& key) {int keyLength = key.length();for (int i = 0; i < size; ++i) {data[i] = data[i] ^ key[i % keyLength]; // 使用循环的方式重复密钥}
}// 读取文件并进行XOR加密
void EncryptFile(const std::string& inputFileName, const std::string& outputFileName, const std::string& key) {// 打开输入文件std::ifstream inputFile(inputFileName, std::ios::binary);if (!inputFile.is_open()) {std::cerr << "Error: Unable to open input file." << std::endl;return;}// 获取文件大小inputFile.seekg(0, std::ios::end);int fileSize = inputFile.tellg();inputFile.seekg(0, std::ios::beg);// 分配内存来存储文件内容char* buffer = new char[fileSize];if (!buffer) {std::cerr << "Error: Memory allocation failed." << std::endl;inputFile.close();return;}// 读取文件内容到缓冲区inputFile.read(buffer, fileSize);inputFile.close();// 对缓冲区中的数据进行加密XORCrypt(buffer, fileSize, key);// 打开输出文件std::ofstream outputFile(outputFileName, std::ios::binary);if (!outputFile.is_open()) {std::cerr << "Error: Unable to open output file." << std::endl;delete[] buffer;return;}// 写入加密后的数据到输出文件outputFile.write(buffer, fileSize);outputFile.close();// 释放缓冲区内存delete[] buffer;std::cout << "Encryption completed successfully." << std::endl;
}int main() {std::string inputFileName; // 输入文件名std::string outputFileName; // 输出文件名std::string key; // 加解密密钥// 获取输入文件名、输出文件名和密钥std::cout << "Enter input file name: ";std::getline(std::cin, inputFileName);std::cout << "Enter output file name: ";std::getline(std::cin, outputFileName);std::cout << "Enter encryption key: ";std::getline(std::cin, key);// 加密文件EncryptFile(inputFileName, outputFileName, key);system("pause");return 0;
}

相关文章:

C++实现XOR加解器

#include <Windows.h> #include <iostream> #include <fstream> #include <string>// 加解密函数&#xff0c;使用XOR运算 void XORCrypt(char* data, int size, const std::string& key) {int keyLength key.length();for (int i 0; i < siz…...

Kubernetes的Sevice管理

服务原理: 所有服务都是根据这个服务衍生或者变化出来,根服务---- 服务感知后端靠标签 slelector 标签选择器 kubectl label pods web1 appweb kubectl cluter-info dump | grep -i service-cluster-ip-range 服务ip取值范围 Service 管理: 创建服务: --- kind: Serv…...

C# 高阶语法 —— Winfrom链接SQL数据库的存储过程

存储过程在应用程序端的使用的优点 1 如果sql语句直接写在客户端&#xff0c;以一个字符串的形式体现的&#xff0c;提示不友好&#xff0c;会导致效率降低 2 sql语句写在客户端&#xff0c;可以利用sql注入进行攻击&#xff0c;为了安全性&#xff0c;可以把sql封装在…...

vue3+vite+ts配置多个代理并解决报404问题

之前配置接口代理总是报404,明明接口地址是对的但还是报是因数写法不对;用了vue2中的写法 pathRewrite改为rewrite 根路径下创建env文件根据自己需要名命 .env.development文件内容 # just a flag ENVdevelopment# static前缀 VITE_APP_PUBLIC_PREFIX"" # 基础模块…...

开创未来:探索OpenAI首个AI视频模型Sora的前沿技术与影响

Sora - 探索AI视频模型的无限可能 随着人工智能技术的飞速发展&#xff0c;AI视频模型已成为科技领域的新热点。而在这个浪潮中&#xff0c;OpenAI推出的首个AI视频模型Sora&#xff0c;以其卓越的性能和前瞻性的技术&#xff0c;引领着AI视频领域的创新发展。让我们将一起探讨…...

Redis---持久化

Redis是内存数据库&#xff0c;是把数据存储在内存中的&#xff0c;但是内存中的数据不是持久的&#xff0c;如果想要做到持久&#xff0c;那么就需要让redis将数据存储到硬盘上。 Redis持久化有两种策略&#xff1a; RDB > Redis DataBase RDB机制采取的是定期备份AOF …...

从 Flask 切到 FastAPI 后,起飞了!

我这几天上手体验 FastAPI&#xff0c;感受到这个框架易用和方便。之前也使用过 Python 中的 Django 和 Flask 作为项目的框架。Django 说实话上手也方便&#xff0c;但是学习起来有点重量级框架的感觉&#xff0c;FastAPI 带给我的直观体验还是很轻便的&#xff0c;本文就会着…...

状态码转文字!!!(表格数字转文字)

1、应用场景&#xff1a;在我们的数据库表中经常会有status这个字段&#xff0c;这个字段经常表示此类商品的状态&#xff0c;例如&#xff1a;0->删除&#xff0c;1->上架&#xff0c;0->下架&#xff0c;等等。 2、我们返回给前端数据时&#xff0c;如果在页面显示0…...

Pytorch 复习总结 4

Pytorch 复习总结&#xff0c;仅供笔者使用&#xff0c;参考教材&#xff1a; 《动手学深度学习》Stanford University: Practical Machine Learning 本文主要内容为&#xff1a;Pytorch 深度学习计算。 本文先介绍了深度学习中自定义层和块的方法&#xff0c;然后介绍了一些…...

YOLOv9中加入SCConv模块!

专栏介绍&#xff1a;YOLOv9改进系列 | 包含深度学习最新创新&#xff0c;主力高效涨点&#xff01;&#xff01;&#xff01; 一、本文介绍 本文将一步步演示如何在YOLOv9中添加 / 替换新模块&#xff0c;寻找模型上的创新&#xff01; 适用检测目标&#xff1a; YOLOv9模块…...

代码随想录算法训练营第四十七天丨198. 打家劫舍、​ 213. 打家劫舍 II​、337. 打家劫舍 III

198. 打家劫舍 自己的思路&#xff1a; 初始化两个dp数组&#xff0c;dp[i][0]表示不偷第i户&#xff0c;在0-i户可以偷到的最大金额&#xff0c;dp[i][1]表示偷i户在0-i户可以偷到的最大金额。 class Solution:def rob(self, nums: List[int]) -> int:n len(nums)dp […...

龙蜥Anolis 8.4 anck 安装mysql5.7

el8没有用mysql5.7了&#xff0c;镜像里是mysql8。 禁用 sudo dnf remove mysql sudo dnf module reset mysql sudo dnf module disable mysql 修改Yum源 sudo vi /etc/yum.repos.d/mysql-community.repo [mysql57-community] nameMySQL 5.7 Community Server baseurlhttp:…...

【踩坑】修复xrdp无法关闭Authentication Required验证窗口

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhang.cn] 问题如下&#xff0c;时不时出现&#xff0c;有时还怎么都关不掉&#xff0c;很烦&#xff1a; 解决方法一&#xff1a;命令行输入 dbus-send --typemethod_call --destorg.gnome.Shell /org/gnome/Shell org.gn…...

python学习笔记 - 标准库常量

Python 中有一些内置的常量&#xff0c;它们是一些特殊的值&#xff0c;通常不会改变。以下是其中一些常见的内置常量及其详细解释以及使用示例&#xff1a; True&#xff1a; 表示布尔值真。给 True 赋值是非法的并会引发 SyntaxError。 x True print(x) # 输出&#xff1a…...

视频和音频使用ffmpeg进行合并和分离(MP4)

1.下载ffmpeg 官网地址&#xff1a;https://ffmpeg.org/download.html 2.配置环境变量 此电脑右键点击 属性 - 高级系统配置 -高级 -环境变量 - 系统变量 path 新增 文件的bin路径 3.验证配置成功 ffmpeg -version 返回版本信息说明配置成功4.执行合并 ffmpeg -i 武家坡20…...

02| JVM堆中垃圾回收的大致过程

如果一直在创建对象&#xff0c;堆中年轻代中Eden区会逐渐放满&#xff0c;如果Eden放满&#xff0c;会触发minor GC回收&#xff0c;创建对象的时GC Roots&#xff0c;如果存在于里面的对象&#xff0c;则被视为非垃圾对象&#xff0c;不会被此次gc回收&#xff0c;就会被移入…...

R语言数据可视化之美专业图表绘制指南(增强版):第1章 R语言编程与绘图基础

第1章 R语言编程与绘图基础 目录 第1章 R语言编程与绘图基础前言1.1 学术图表的基本概念1.1.1 学术图表的基本作用1.1.2基本类别1.1.3 学术图表的绘制原则 1.2 你为什么要选择R1.3 安装 前言 这是我第一次在博客里展示学习中国作者的教材的笔记。我选择这本书的依据是作者同时…...

网站添加pwa操作和配置manifest.json后,没有效果排查问题

pwa技术官网&#xff1a;https://web.dev/learn/pwa 应用清单manifest.json文件字段说明&#xff1a;https://web.dev/articles/add-manifest?hlzh-cn Web App Manifest&#xff1a;Web App Manifest | MDN 当网站添加了manifest.json文件后&#xff0c;也引入到html中了&a…...

MongoDB聚合运算符:$cosh

文章目录 语法使用举例双曲余弦值角度双曲余弦值弧度 $cosh聚合运算符用来计算双曲余弦值&#xff0c;返回指定表达式的双曲余弦值。 语法 { $cosh: <expression> }<expression>为可被解析为数值的表达式$cosh返回弧度&#xff0c;使用$radiansToDegrees运算符可…...

Jenkins配置在远程服务器上执行shell脚本(两种方式)

Jenkins配置在远程服务器上执行shell脚本 方式一&#xff1a;通过SSH免密方式执行 说明&#xff1a;Jenkins部署在ServerA&#xff1a;10.1.1.74上&#xff0c;要运行的程序在ServerB&#xff1a;10.1.1.196 分两步 第一步&#xff1a;Linux Centos7配置SSH免密登录 Linux…...

Android BSP 开发深度解析:驱动开发、系统定制与调试实战

前言 在移动互联网和物联网飞速发展的今天,Android 系统凭借其开放性和强大的定制能力,已广泛应用于智能手机、平板、车载信息娱乐系统、智能家居、工业控制设备等众多领域。支撑这些设备高效运行的核心,除了硬件本身,便是介于硬件与上层应用之间的系统软件基石——板级支…...

邯郸市佳铭文化:Geo软文+社交媒体,解锁品牌传播新闭环

在2026年的营销版图中&#xff0c;品牌传播已从单一渠道的“单点爆破”演变为全平台协同的“系统作战”。邯郸市佳铭文化凭借对Geo&#xff08;生成式引擎优化&#xff09;技术与社交媒体生态的深度洞察&#xff0c;为企业打造了一套“内容精准触达用户情感共鸣”的传播闭环体系…...

免费在线3D模型查看器完整指南:如何轻松预览20+格式的CAD文件

免费在线3D模型查看器完整指南&#xff1a;如何轻松预览20格式的CAD文件 【免费下载链接】Online3DViewer A solution to visualize and explore 3D models in your browser. 项目地址: https://gitcode.com/gh_mirrors/on/Online3DViewer Online3DViewer是一个基于WebG…...

RAG系统突现“知识遗忘”?手把手复现并修复向量检索链路的混沌断裂点(含ChaosBlade YAML实录)

第一章&#xff1a;生成式AI应用混沌工程实践 2026奇点智能技术大会(https://ml-summit.org) 生成式AI系统在生产环境中面临独特的韧性挑战&#xff1a;模型输出的非确定性、提示注入的隐蔽性、向量数据库的漂移敏感性&#xff0c;以及LLM API调用链中多跳依赖的级联故障风险。…...

无刷电机强拖程序实战:从V/F到I/F的代码实现与切换策略

1. 无刷电机强拖程序基础概念 第一次接触无刷电机强拖程序时&#xff0c;我也被各种专业术语搞得一头雾水。简单来说&#xff0c;强拖就是让电机在没有位置传感器的情况下"强行"转起来的技术。想象一下你蒙着眼睛骑自行车&#xff0c;刚开始需要有人推你一把才能保持…...

OmenSuperHub终极指南:三步解锁惠普游戏本隐藏性能,告别官方软件臃肿体验

OmenSuperHub终极指南&#xff1a;三步解锁惠普游戏本隐藏性能&#xff0c;告别官方软件臃肿体验 【免费下载链接】OmenSuperHub 使用 WMI BIOS控制性能和风扇速度&#xff0c;自动解除DB功耗限制。 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 你是否厌…...

英飞凌TLE9954GPT12:解锁电机控制与位置传感的定时器核心

1. 英飞凌TLE9954GPT12&#xff1a;电机控制的瑞士军刀 第一次接触英飞凌TLE9954芯片时&#xff0c;我正为一个BLDC电机项目发愁。传统方案需要外接一堆分立元件&#xff0c;电路板复杂得像蜘蛛网。直到同事扔给我这颗集成GPT12定时器的驱动芯片&#xff0c;整个设计突然变得清…...

Sunshine游戏串流服务器:构建低延迟跨平台游戏共享的技术架构与实践指南

Sunshine游戏串流服务器&#xff1a;构建低延迟跨平台游戏共享的技术架构与实践指南 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine Sunshine是一款自托管的游戏串流服务器&#x…...

STM32-结构体对齐与内存池实战优化

1. 为什么STM32开发者必须掌握结构体对齐与内存池 第一次在STM32上实现CAN总线通信时&#xff0c;我遇到了一个诡异的问题&#xff1a;接收到的数据总是错位。调试了整整两天才发现&#xff0c;问题出在结构体成员没有按4字节对齐&#xff0c;导致DMA传输时数据地址不符合硬件要…...

如何快速安装kill-doc:免费文档下载的终极指南

如何快速安装kill-doc&#xff1a;免费文档下载的终极指南 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档&#xff0c;但是相关网站浏览体验不好各种广告&#xff0c;各种登录验证&#xff0c;需要很多步骤才能下载文档&#xff0c;该脚本就是为了解决您的…...