【Java加解密】反向凯撒密码
【思路】
反向凯撒加密的思路是让字符串先反向,再移位。
这种加密能保持和原文等长,比纯凯撒加密相对难猜。
【代码】
package com.hy.cypher; public class ReverseCaesar { // 加密 private static String encrypt(String str,int seed){ char[] arr=str.toCharArray(); int n=arr.length-1; for(int i=0,j=n;i<j;i++,j--) { arr[i]+=seed; arr[j]+=seed; char temp=arr[i]; arr[i]=arr[j]; arr[j]=temp; } return String.valueOf(arr); } // 解密 private static String decrypt(String str,int seed){ char[] arr=str.toCharArray(); int n=arr.length-1; for(int i=0,j=n;i<j;i++,j--) { arr[i]-=seed; arr[j]-=seed; char temp=arr[i]; arr[i]=arr[j]; arr[j]=temp; } return String.valueOf(arr); } public static void main(String[] args) { String[] arr={"ACBDEFD","1234567","ABCMD23132dds","大于等于2132ADE",}; for(String str:arr){ String enStr=encrypt(str,25); String deStr=decrypt(enStr,25); String msg=String.format("原字符串=%s 加密后=%s 还原后=%s",str,enStr,deStr); System.out.println(msg); } } }
【输出】
原字符串=ACBDEFD 加密后=]_^D[\Z 还原后=ACBDEFD 原字符串=1234567 加密后=PON4LKJ 还原后=1234567 原字符串=ABCMD23132dds 加密后=}}KLJ3K]f\[Z 还原后=ABCMD23132dds 原字符串=大于等于2132ADE 加密后=^]ZKL1K产筢产奀 还原后=大于等于2132ADE
END
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
2019-03-09 【Canvas与游戏】Bombman v1.04
2019-03-09 【Canvas与艺术】模拟八一电影制片厂电影片头效果
2019-03-09 【Canvas技法】蓝布底金字北岛诗节选(背景图片、文字阴影示例)
2017-03-09 “阿基里斯与乌龟”的终结性思考
2017-03-09 生活本来的样子