基础加/解密程序V2.0(Ascll码加减实现) txt保存密钥

news2025/1/20 5:55:15

Hello大家好,这次我对上篇博客(基础加/解密程序(Ascll码加减实现)-CSDN博客)中的代码略加修改,退出了2.0版本,这次我加入了txt输入/出流,使得可随时对密钥进行更改。不过在使用前,需要先新建一个txt文件并输入密钥(int类型),如下图:

接下来展示源代码:

/*
by袁神派蒙
制作不易,支持一下吧(^_^)
*/
#include<bits/stdc++.h>
#include <fstream>
#include<windows.h>
using namespace std;
ifstream fr;			//读入
ofstream fw;			//输出
int lock(string s,int a){
	for(int i=0;i<=s.size();i++){
		s[i]+=a;
	}
	cout<<s<<endl;
}
int unlock(string s,int a){
	for(int i=0;i<=s.size();i++){
		s[i]-=a;
	}
	cout<<s<<endl;
}

int work(){
	system("cls");
	cout<<"按下对应序号+enter以启用功能"<<endl<<"1.加密"<<endl<<"2.解密"<<endl;
}
int main(){
						//关闭文件
	string s;
	cout<<"=============================基础加/解密程序V2.0============================="<<endl;
	cout<<"                               Ascll码加减加密" <<endl;
	cout<<"                                  by袁神派蒙"<<endl;
	Sleep(3000);
	for(;;){
		int key;							//要读入的数
		fr.open("key.txt");			//打开文件
		fr>>key;							//读入一个数a
		fr.close();	
		int choosen;
		work(); 
		cin>>choosen; 
		if(choosen==1){
			system("cls");
			cout<<"输入要加密的字符串:"<<endl;
			getchar();
			getline(cin,s);
			lock(s,key); 
			cout<<"接下来要做什么?"<<endl<<"1.退出程序 2.(任意键).继续"<<endl; 
		}else if(choosen==2){
			system("cls");
			cout<<"输入要解密的字符串:"<<endl;
			getchar();
			getline(cin,s);
			unlock(s,key); 
			cout<<"接下来要做什么?"<<endl<<"1.退出程序 2.(任意键).继续"<<endl; 
		}
		cin>>choosen;
		if(choosen==1)	break;
		system("cls");
	}
	return 0; 
} 

感谢你的阅读,如果觉得好,就给个收藏加关注支持一下博主吧!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2255800.html

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

相关文章

代码随想录算法训练营day50|动态规划12

不同的子序列 给定一个字符串 s 和一个字符串 t &#xff0c;计算在 s 的子序列中 t 出现的个数。、 编辑距离中的删除元素&#xff0c;其实就是直接变数字&#xff0c;其只删除原来的较长的数组里的元素 递推模拟&#xff0c;使用s的最后一个元素匹配&#xff0c;或者删除…

keil报错---connection refused due to device mismatch

解决办法如下&#xff1a; 记得改成1 把Enable取消

黑森林实验室发布FLUX.1 Tools控制套件,全面介绍

FLUX.1 Tools是什么 FLUX.1 Tools 是由 Black Forest Labs 发布的一套模型工具&#xff0c;旨在为文本到图像模型 FLUX.1 提供更多的控制和可操作性&#xff0c;使得对真实和生成图像的修改和重新创作成为可能。这套工具包括四个核心功能&#xff1a;FLUX.1 Fill、FLUX.1 Dept…

【包教包会】CocosCreator3.x——重写Sprite,圆角、3D翻转、纹理循环、可合批调色板、不影响子节点的位移旋转缩放透明度

一、效果演示 重写Sprite组件&#xff0c;做了以下优化&#xff1a; 1、新增自变换&#xff0c;在不影响子节点的前提下位移、旋转、缩放、改变透明度 新增可合批调色板&#xff0c;支持色相、明暗调节 新增圆角矩形、3D透视旋转、纹理循环 所有功能均支持合批、原生平台&…

AI 语音:IIElevenLabs 如何通过文本训练出新的声音

网址&#xff1a;Free Text to Speech & AI Voice Generator | ElevenLabs 1&#xff09;点击添加新的声音 2&#xff09;根据需要选择 3&#xff09;比如我选择第一个&#xff08;从文本提示设计一个全新的声音&#xff09; 4&#xff09;通过中文将想要的声音要求翻译成…

Vant UI +Golang(gin) 上传文件

前端基本用法&#xff1a;点击查看 实现代码&#xff1a; const afterRead (file) > {console.log(file);//set content-type to multipart/form-dataconst formData new FormData();formData.append("file", file.file);request.POST("/api/v1/users/up…

2021 年“泰迪杯”数据分析技能赛B 题肥料登记数据分析

2021 年“泰迪杯”数据分析技能赛B 题肥料登记数据分析 完整代码请私聊 博主 # 一、背景 肥料是农业生产中一种重要的生产资料&#xff0c;其生产销售必须遵循《肥料登记管理办法》&#xff0c;依法在农业行政管理部门进行登记。各省、自治区、直辖市人民政府农业行政主管部门主…

C#常见错误—空对象错误

System.NullReferenceException&#xff1a;未将对象引用设置到对象的实例 在C#编程中&#xff0c;System.NullReferenceException是一个常见的运行时异常&#xff0c;其错误信息“未将对象引用设置到对象的实例”意味着代码试图访问一个未被初始化或已被设置为null的对象的成…

MATLAB Simulink® - 智能分拣系统

系列文章目录 前言 本示例展示了如何在虚幻引擎 环境中对四种不同形状的标准 PVC 管件实施半结构化智能分拣。本示例使用 Universal Robots UR5e cobot 执行垃圾箱拣选任务&#xff0c;从而成功检测并分类物体。cobot 的末端执行器是一个吸力抓手&#xff0c;它使 cobot 能够拾…

【SpringMVC】应用分层

阿华代码&#xff0c;不是逆风&#xff0c;就是我疯 你们的点赞收藏是我前进最大的动力&#xff01;&#xff01; 希望本文内容能够帮助到你&#xff01;&#xff01; 目录 一&#xff1a;场景引入 二&#xff1a;前后端分离三层架构 1&#xff1a;表现层 2&#xff1a;业务…

【TCP 网络通信(发送端 + 接收端)实例 —— Python】

TCP 网络通信&#xff08;发送端 接收端&#xff09;实例 —— Python 1. 引言2. 创建 TCP 服务器&#xff08;接收端&#xff09;2.1 代码示例&#xff1a;TCP 服务器2.2 代码解释&#xff1a; 3. 创建 TCP 客户端&#xff08;发送端&#xff09;3.1 代码示例&#xff1a;TCP…

在阿里云/Linux环境搭建Gitblit服务

在阿里云/Linux环境搭建Gitblit服务 1. 整体描述2. 前期准备3. 安装步骤3.1 下载gitblit3.2 上传gitblit3.3 解压文件3.4 修改文件配置3.5 启动gitblit3.6 安全组配置 4. 总结 1. 整体描述 前段时间买了一个阿里云服务器&#xff0c;2核2G&#xff0c;3M固定带宽的配置&#x…

定时任务——xxl-job源码解析

摘要 本文深入解析了xxl-job的源码&#xff0c;xxl-job是一个分布式任务调度平台&#xff0c;其核心设计思想是将调度行为抽象成“调度中心”&#xff0c;而任务逻辑则由“执行器”处理&#xff0c;实现调度与任务的解耦。文章详细介绍了调度器和执行器的初始化流程、任务执行…

吉他初学者学习网站搭建系列(9)——如何用coze做一个网站助手

文章目录 背景功能搭建智能体新增工作流效果总结 背景 随着AI大模型的普及&#xff0c;国内也涌现出许多帮助用户更便捷使用大模型的平台。扣子就是其中之一。国内已经有蛮多用户了&#xff0c;我试用了这个平台&#xff0c;来给我的网站搭建一个小助手&#xff0c;效果非常好…

Anaconda 下安装OpenCV 4.10.0

大家也可以使用pip安装。 pip install opencv-python4.10.0 这里使用conda安装 conda install opencv4.10.0 import cv2 print(cv2.__version__)

帝可得-商品管理

商品管理 需求说明 商品管理主要涉及到三个功能模块&#xff0c;业务流程如下&#xff1a; 新增商品类型: 定义商品的不同分类&#xff0c;如饮料、零食、日用品等。新增商品: 添加新的商品信息&#xff0c;包括名称、规格、价格、类型等。设备货道管理: 将商品与售货机的货…

前端知识1html

VScode一些快捷键 Ctrl/——注释 !——生成html框架元素 *n——生成n个标签 直接书写html的名字回车生成对应的标签 常见标签 span&#xff1a; <span style"color: red;">hello</span> <span>demo</span> span实现&#xff1a; 标题…

【后端面试总结】tcp为什么要设置TIME_WAIT

设置TIME_WAIT的原因 相信大家对tcp的三次握手和四次挥手的过程已经非常熟悉了&#xff0c;但是对于四次挥手来说&#xff0c;有个问题一直困扰着我&#xff0c;那就是为什么在server端发送LAST_ACK之后&#xff0c;还要等待TIME_WAIT时间呢&#xff1f;原因有二&#xff1a; …

vue中使用socket.io统计在线用户

目录 一、引入相关模块 二、store/modules 中封装socketio 三、后端代码(nodejs) 一、引入相关模块 main.js 中参考以下代码 ,另外socketio的使用在查阅其它相关文章时有出入,还是尽量以官方文档为准 import VueSocketIO from vue-socket.io import SocketIO from socket.io-…

Redis的五种数据类型(Set、Zset)

目录 1. Set 集合1.1 Set介绍1.2 常见命令1.2.1 SADD命令1.2.2 SMEMBERS命令1.2.3 SISMEMBER命令1.2.4 SCARD命令1.2.5 SPOP命令1.2.6 SMOVE命令1.2.7 SREM命令 1.3 集合间操作1.3.1 SINTER命令1.3.2 SINTERSTORE命令1.3.3 SUNION命令1.3.4 SUNIONSTORE命令1.3.5 SDIFF命令1.3.…