凯撒密码的java实现

这篇博客介绍了如何使用Java实现凯撒密码的加密和解密功能。代码中包含了详细的注释,并且已经进行了封装,方便根据实际需求调整加密解密规则。测试代码展示了解密过程并给出了结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简单的加密方式,基本原理就不说了,谷歌一大堆,代码中也写了注释。
已封装,可根据实际需求更改加密、解密规则。

package helper;

/**
 * 凯撒密码加密与解密帮助类
 * @author chenql
 */
public class CaesarCodeHelper {

    public static String CaesarEncript(String origin) {

        String encripted = "";// 加密后的字符串

        char[] charArray = origin.toCharArray();// 待加密字符串转化为字符数组

        for (int i = 0; i < charArray.length; i++) {

            if((charArray[i] >= 'd' && charArray[i] <= 'z') 
                    || ((charArray[i] >= 'D' && charArray[i] <= 'Z'))) {
                // ASCII码大于100(d)、小于122(z) 或者 大于68(D)、小于90(Z)的字符-3
                // 即向前偏移3个字母
                charArray[i] = (char) (charArray[i] - 3);

            } else if ((charArray[i] >= 'a' && charArray[i] <= 'c') 
                    || ((charArray[i] >= 'A' && charArray[i] <= 'C'))) {
                // ASCII码大于97(a)、小于99(c) 或者 大于65(A)、小于67(C)的字符+23
                // 也是向前偏移3个字母(假设字母往复循环)
                charArray[i] = (char) (charArray[i] + 23);
            }
            encripted+=charArray[i];// 逐个拼接加密后的字符
        }

        return encripted;
    }


    public static String  CaesarDecript(String encripted) {

        String decripted = "";// 解密后的字符串

        char[] charArray = encripted.toCharArray();// 待解密字符串转化为字符数组

        for (int i = 0; i < charArray.length; i++) {

            if((charArray[i] >= 'a' && charArray[i] <= 'w')
                    || ((charArray[i] >= 'A' && charArray[i] <= 'W'))) {
                // ASCII码大于97(a)、小于119(w) 或者 大于65(A)、小于87(W)的字符3
                // 即向后偏移3个字母
                charArray[i] = (char) (charArray[i] + 3);

            } else if ((charArray[i] >= 'x' && charArray[i] <= 'z') 
                    || ((charArray[i] >= 'X' && charArray[i] <= 'Z'))) {
                // ASCII码大于120(x)、小于122(z) 或者 大于88(X)、小于90(Z)的字符-23
                // 也是向后偏移3个字母(假设字母往复循环)
                charArray[i] = (char) (charArray[i] - 23);
            }
            decripted+=charArray[i];// 逐个拼接加密后的字符
        }

        return decripted;
    }
}

测试代码:

private void test() {
    String string = "abcdefvwxyzABCDEFVWXYZ this is for test";// 待加密字符串

    String encripted = CaesarCodeHelper.CaesarEncript(string);
    String decripted = CaesarCodeHelper.CaesarDecript(encripted);

    Log.d("test", "origin:\n" + string);
    Log.d("test", "encripted:\n" + encripted);
    Log.d("test", "decripted:\n" + decripted);

}

结果输出:
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值