返回列表 发新帖

凯撒密码的加密与解密

[复制链接]

32

主题

220

回帖

1446

积分

高中生

Rank: 4

金币
624
好评
1
信誉
100

考神MT论坛新人MT论坛最佳新人

QQ
发表于 2023-3-22 16:06:03 来自手机  | 显示全部楼层 | 阅读模式  来自 湖南
凯撒密码是什么?
凯撒密码是一种古典密码,也称作移位密码。
它是通过将明文中的每个字母按照指定的偏移量进行移位来加密的。
例如,如果偏移量为3,则字母A将被加密为D,字母B将被加密为E,以此类推。
解密过程则是将加密后的密文按照相同的偏移量进行反向移位,得到原始的明文。


代码
//这里是加密函数
  public static String encrypt(String ciphertext, int offset) {
    return CaesarCipher(ciphertext, offset);
  }
  //这里是解密函数
  public static String decrypt(String ciphertext, int offset) {
    return CaesarCipher(ciphertext, -offset);
    //只需加一个负号即可解密
  }
  /*
  加密/解密函数
  凯撒密码的加密和解密代码是一样的,只需要把偏移量改为负数
  输入
  plaintext:明文String
  offset:偏移量int
  输出密文String
  */
  public static String CaesarCipher(String plaintext, int offset) {
    StringBuilder ciphertext = new StringBuilder();
    for (int i = 0; i < plaintext.length(); i++) {
      char c = plaintext.charAt(i);
      // 只对字母进行偏移
      if (Character.isLetter(c)) {
        // 大写字母偏移
        if (Character.isUpperCase(c)) {
          c = (char) ((c - 'A' + offset) % 26 + 'A');
        }
        // 小写字母偏移
        else {
          c = (char) ((c - 'a' + offset) % 26 + 'a');
        }
      }
      ciphertext.append(c);
      //合并
    }
    return ciphertext.toString();
    //输出
  }

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

11

主题

411

回帖

989

积分

高中生

Rank: 4

金币
120
好评
0
信誉
100
QQ
发表于 2023-3-22 16:34:18 来自手机  | 显示全部楼层  来自 湖南
沙发我做了
回复

使用道具 举报

34

主题

1515

回帖

4948

积分

大学生

Rank: 5Rank: 5

金币
171
好评
2
信誉
125

考神MT论坛新人

发表于 2023-3-22 16:40:34 来自手机  | 显示全部楼层  来自 贵州
楼主辛苦了
回复

使用道具 举报

30

主题

6064

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
6239
好评
12
信誉
98
发表于 2023-3-22 16:49:27 来自手机  | 显示全部楼层  来自 安徽
感谢楼主分享
回复

使用道具 举报

175

主题

8838

回帖

2万

积分

博士后

Rank: 8Rank: 8

金币
7383
好评
29
信誉
165

MT论坛新人MT论坛帅哥考神MT论坛最佳新人MT论坛灌水老大MT论坛活跃会员

发表于 2023-3-22 17:45:34 来自手机  | 显示全部楼层  来自 河南
感谢分享
回复

使用道具 举报

35

主题

6645

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
403
好评
9
信誉
125

MT论坛帅哥MT论坛新人考神MT论坛最佳新人

发表于 2023-3-22 21:52:14 来自手机  | 显示全部楼层  来自 山东
嗯,涨芝士了
回复

使用道具 举报

8

主题

3840

回帖

8798

积分

硕士生

Rank: 6Rank: 6

金币
2937
好评
6
信誉
96
发表于 2023-6-4 22:24:40 来自手机  | 显示全部楼层  来自 广西
路过看看
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表