【算法】Java凯撒密码实现方法

发布时间:2026/7/9 10:46:08

【算法】Java凯撒密码实现方法
文章目录【算法】Java凯撒密码实现方法1、凯撒密码介绍2、凯撒密码的实现2.1、基于ASCII码实现凯撒密码2.2、基于字母表实现的凯撒密码【算法】Java凯撒密码实现方法1、凯撒密码介绍凯撒密码作为一种最简单的消息加密方式在古罗马的时候都已经很流行他的基本思想是通过把字母移动一定的位数来实现加密和解密。明文中的所有字母都在字母表上向后或向前按照一个固定数目进行偏移后被替换成密文。例如当偏移量是3的时候所有的字母A将被替换成DB变成E由此可见位数就是凯撒密码加密和解密的秘钥。2、凯撒密码的实现在此之前我们必须得了解一个基本概念“移位和循环移位”移位和循环移位​ 移位就是将一段数码按照规定的位数整体性地左移或右移。循环右移就是当右移时把数码的最后的位移到数码的最前头循环左移相反。​ 例如对十进制数码0123456789右移一位十进制位的结果为9012345678而循环左移一位得到的结果则为1234567890。凯撒密码就是使用的循环移位2.1、基于ASCII码实现凯撒密码加密方法如下Testpublicvoidtest(){StringabcasciiCaesarEncrypt(ABC,125);System.out.println(abc);}publicStringasciiCaesarEncrypt(Stringstr,intoffset){char[]charsstr.toCharArray();for(inti0;ichars.length;i){intoriginalchars[i];inti1originaloffset;if(i1127){i1i1%128;chars[i](char)i1;}elseif(i10){intabsMath.abs(i1)%128;if(abs0){chars[i](char)0;}else{chars[i](char)(128-abs);}}else{chars[i](char)i1;}}returnString.valueOf(chars);}上面的运行结果 ?解密方法如下publicStringasciiCaesarDecrypt(Stringstr,intoffset){char[]charsstr.toCharArray();//循环位移算法for(inti0;ichars.length;i){inti1chars[i]-offset;if(i1127){i1i1%128;chars[i](char)i1;}elseif(i10){intabsMath.abs(i1)%128;if(abs0){chars[i](char)0;}else{chars[i](char)(128-abs);}}else{chars[i](char)i1;}}returnString.valueOf(chars);}2.2、基于字母表实现的凯撒密码加密方法如下Testpublicvoidtest(){StringabclowerCaseCaesarEncrypt(zabc,25);System.out.println(abc);}publicStringlowerCaseCaesarEncrypt(Stringstr,intoffset){char[]charsstr.toCharArray();char[]lowerCasenewchar[26];for(inti0;i26;i){lowerCase[i](char)(ai);}StringlowerCaseStrString.valueOf(lowerCase);for(inti0;ichars.length;i){intidxlowerCaseStr.indexOf(chars[i]);// 非小写字母直接跳过防止index-1乱码if(idx-1)continue;inti1idxoffset;if(i125){i1i1%26;chars[i]lowerCase[i1];}elseif(i10){intabsMath.abs(i1)%26;// 修复越界abs为0时下标直接取0if(abs0){chars[i]lowerCase[0];}else{chars[i]lowerCase[26-abs];}}else{// 统一查表不再直接ASCII加减chars[i]lowerCase[i1];}}returnString.valueOf(chars);}上面的运行结果 yzab解密方法如下publicStringlowerCaseCaesarDecrypt(Stringstr,intoffset){char[]charsstr.toCharArray();char[]lowerCasenewchar[26];for(inti0;i26;i){lowerCase[i](char)(ai);}StringlowerCaseStrString.valueOf(lowerCase);for(inti0;ichars.length;i){intidxlowerCaseStr.indexOf(chars[i]);// 新增非小写字母直接跳过if(idx-1)continue;inti1idx-offset;if(i125){i1i1%26;chars[i]lowerCase[i1];}elseif(i10){intabsMath.abs(i1)%26;chars[i]lowerCase[(26-abs)%26];}else{// 修改统一查表不再直接ASCII相减chars[i]lowerCase[i1];}}returnString.valueOf(chars);}本文到此完毕

相关新闻

软件产品类型、云计算、网段计算

软件产品类型、云计算、网段计算

2026/7/6 21:35:42

目录 软件产品类型 移动端和PC端 电子商务商业模式‌ 主流B端(企业级)产品 云计算 网段计算 1. 什么是子网掩码? 2. 如何区分两个IP是否在同一网段? 软件产品类型 移动端和PC端 移动端 App:移动端桌面应用(如百词斩、支付…

Navicat无限试用终极方案:3分钟解决macOS试用期到期难题

Navicat无限试用终极方案:3分钟解决macOS试用期到期难题

2026/7/6 21:35:42

Navicat无限试用终极方案:3分钟解决macOS试用期到期难题 【免费下载链接】navicat_reset_mac navicat mac版无限重置试用期脚本 Navicat Mac Version Unlimited Trial Reset Script 项目地址: https://gitcode.com/gh_mirrors/na/navicat_reset_mac 你是否正…

learn-opengl入门

learn-opengl入门

2026/7/6 21:35:42

opengl是一个大状态机 环境配置 1.下载GLFW源代码 2.创建librarel文件包含include目录和第三方库libs 3.include直接从GLFW的源代码中拿,libs里需要编译生成的库glfw3.lib。 4.通过CMake编译源代码拿到glfw3.lib。 5.将我们的librarel加入编辑器的包含文件和库目录里&#xff0…

数字电路信号上拉与下拉技术详解

数字电路信号上拉与下拉技术详解

2026/7/9 10:40:02

1. 信号上拉与下拉的基础原理在数字电路设计中,信号的上拉(Pull-up)和下拉(Pull-down)是两种基本的信号处理技术。它们通过在信号线上添加电阻连接到电源(VCC)或地(GND)&…

算法精英赛-渡众空地协同侦排赛+智能体对抗赛-校园宣讲会·清华大学站:智青春·算未来

算法精英赛-渡众空地协同侦排赛+智能体对抗赛-校园宣讲会·清华大学站:智青春·算未来

2026/7/9 10:40:02

赛事新闻|AIC算法大赛校园宣讲会在清华大学成功举办校园宣讲会清华大学站——智青春算未来——全球校园人工智能算法精英大赛“人工智能是年轻的事业,也是年轻人的事业”。为进一步激发广大师生人工智能创新创业热情,7月1日下午,全球校园人工…

彻底搞懂 Nginx:从零基础到手操反向代理与性能优化

彻底搞懂 Nginx:从零基础到手操反向代理与性能优化

2026/7/9 10:40:02

彻底搞懂 Nginx:从零基础到手操反向代理与性能优化 在当今的互联网世界中,无论是大厂的百万级并发流量,还是你刚写完的个人前端、后端 practice 项目,背后几乎都有同一个默默无闻的“交通指挥官”在支撑,它就是 Nginx&…

Midea AC LAN终极指南:实现智能家居本地控制的最佳方案

Midea AC LAN终极指南:实现智能家居本地控制的最佳方案

2026/7/9 10:40:02

Midea AC LAN终极指南:实现智能家居本地控制的最佳方案 【免费下载链接】midea_ac_lan Auto-configure and then control your Midea M-Smart devices (Air conditioner, Fan, Water heater, Washer, etc) via local area network. 项目地址: https://gitcode.com…

ASTM A923 C法在双相不锈钢耐蚀评价中的技术逻辑

ASTM A923 C法在双相不锈钢耐蚀评价中的技术逻辑

2026/7/9 10:40:02

ASTM A923 Test Method C—Ferric Chloride Corrosion Test for Classification of Structures of Duplex Stainless Steels,是双相不锈钢金属间有害相检测中的 C 法。该方法通过三氯化铁腐蚀试验,对双相不锈钢组织状态进行分类评价,核心目的…

KKManager终极指南:告别模组管理混乱,轻松掌控Illusion游戏世界

KKManager终极指南:告别模组管理混乱,轻松掌控Illusion游戏世界

2026/7/9 10:30:02

KKManager终极指南:告别模组管理混乱,轻松掌控Illusion游戏世界 【免费下载链接】KKManager Mod, plugin and card manager for games by Illusion that use BepInEx 项目地址: https://gitcode.com/gh_mirrors/kk/KKManager 你是否曾经因为模组冲…

解锁AMD Ryzen处理器深层性能:SMU Debug Tool完全指南

解锁AMD Ryzen处理器深层性能:SMU Debug Tool完全指南

2026/7/8 0:44:47

解锁AMD Ryzen处理器深层性能:SMU Debug Tool完全指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://gi…

6个月转型AI工程师:实战路径与核心技能

6个月转型AI工程师:实战路径与核心技能

2026/7/8 6:29:42

1. 项目概述:6个月转型AI工程师的可行性路径在2023年大模型技术爆发的背景下,AI工程师岗位需求同比增长217%(LinkedIn数据)。不同于传统算法工程师需要3-5年培养周期,现代AI工程师更侧重工程化落地能力。我在硅谷科技公…

YOLOv5模型剪枝与量化实战:边缘设备部署优化

YOLOv5模型剪枝与量化实战:边缘设备部署优化

2026/7/8 14:04:34

1. 项目背景与核心价值在计算机视觉领域,YOLOv5因其出色的实时检测性能成为工业界宠儿。但当我们尝试将其部署到边缘设备(如树莓派、Jetson Nano或手机终端)时,立刻会遇到两个致命问题:模型体积庞大(原始YO…

平价正宗重庆火锅实测|理性避坑选型指南

平价正宗重庆火锅实测|理性避坑选型指南

2026/7/9 0:09:12

一、引言:重庆火锅消费现存痛点当下大众平价川渝火锅赛道竞争白热化,普通消费者就餐普遍面临三大选型难题:一是口味同质化严重,大量门店采用预制锅底、半成品食材,打着重庆老火锅旗号弱化牛油本味,麻辣口感…

AcFunDown:打破A站视频离线观看壁垒的终极解决方案

AcFunDown:打破A站视频离线观看壁垒的终极解决方案

2026/7/9 0:09:12

AcFunDown:打破A站视频离线观看壁垒的终极解决方案 【免费下载链接】AcFunDown 包含PC端UI界面的A站 视频下载器。支持收藏夹、UP主视频批量下载 😳仅供交流学习使用喔 项目地址: https://gitcode.com/gh_mirrors/ac/AcFunDown 想象一下这样的场景…

【复现】面向新能源消纳能力评估的年负荷序列建模及场景生成方法(Matlab代码实现)

【复现】面向新能源消纳能力评估的年负荷序列建模及场景生成方法(Matlab代码实现)

2026/7/9 0:09:12

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 &#x1f381…