凯撒密码

凯撒密码是用于加密通过信使传递的作战命令。它是将字母表中的字母移动一定位置来实现加密。

在这里插入图片描述

package caesar;

public class Caesar {
	String s;		//要进行处理的加密或者解密字符串
	int key;		//字符移动的位数
	Caesar(String es,int n){		//构造方法
		s = es;
		key = n;
	}
	public String process(){		//加密和解密方法
		String es = "";		
		for(int i = 0;i < s.length();i++){
			char c = s.charAt(i);		//取字符串中每一位
			if(c >= 'a' && c <= 'z'){	//是小写字母
				c += key%26;			//移动的位数
				if(c < 'a') c += 26;	//向左越界
				if(c > 'z') c -= 26;	//向右越界
			}
			else if(c >= 'A' && c <='Z'){	//是大写字母
				c += 26;
				if(c < 'A') c += 26;
				if(c > 'Z') c -= 26;
			}
			es += c;
		}
		return es;
	}
	public static void main(String args[]){
		String s = "hello";
		Caesar c = new Caesar(s,2);			//进行加密
		String str = c.process();
		System.out.println("加密字符串为:" + str);
		Caesar c1 = new Caesar(str, -2);		//进行解密
		str = c1.process();
		System.out.println("解密字符串为:" + str);
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值