凯撒密码(Java)
事实上就是把每个字母偏移一下而已,并且字符不限于a-zA-z,可以是别的,那就很显而易见了,代码如下:
定义一个Caesar密码类,成员变量只有密钥,也就是偏移量key
代码如下:
public class CaesarCrypto {
    private int key;
    public CaesarCrypto(int key) {
        // TODO Auto-generated constructor stub
        this.key = key;
    }
    public String getCipher(String plain) {
        char[] cipherChars = plain.toCharArray();
        for (int i = 0; i < cipherChars.length; i++) {
            cipherChars[i] = (char) (cipherChars[i] + this.key);
        }
        return new String(cipherChars);
    }
    public String getPlain(String cipher) {
        char[] cipherChars = cipher.toCharArray();
        for (int i = 0; i < cipherChars.length; i++) {
            cipherChars[i] = (char) (cipherChars[i] - this.key);
        }
        return new String(cipherChars);
    }
    public static void main(String[] args) {
        String text = "Java is the best language in the world!";
        System.out.println("明文:" + text);
        CaesarCrypto cc = new CaesarCrypto(4);
        String cipher = cc.getCipher(text);
        System.out.println("密文:" + cipher);
        System.out.println("解密" + cc.getPlain(cipher));
    }
}
结果如下:
明文:Java is the best language in the world!
密文:Neze$mw$xli$fiwx$perkyeki$mr$xli${svph%
解密Java is the best language in the world!
凯撒密码(Java)的更多相关文章
- java:凯撒密码及String的应用
		一,凯撒密码 古罗马皇帝凯撒在打仗时曾使用过以下方法加密军事情报 现在用java实现 程序设计思想: 1,字符串首先要转化为字符数组,才能依次加密 2,当原来的字符为X,Y,Z时,加密后要转化为A,B ... 
- 凯撒密码加密解密--JAVA实现(基础)
		凯撒密码一种代换密码,据说凯撒是率先使用加密函的古代将领之一,因此这种加密方法被称为恺撒密码.凯撒密码的基本思想是:通过把字母移动一定的位数来实现加密和解密.明文中的所有字母都在字母表上向后(或向前) ... 
- JAVA第一次实验 ——凯撒密码
		课程:Java程序设计 班级:1352 姓名:黄伟业 学号:20135215 成绩: 指导教师:娄嘉鹏 实验日期:2015.4.15 实验密级: 预习程度: 实验时间:19: ... 
- JAVA第一次实验 ——凯撒密码的实现
		JAVA实验一 编写程序实现凯撒密码 201352330 潘俊洋 一.实验说明 凯撒密码作为一种最为古老的对称加密体制,在古罗马的时候都已经很流行,他的基本思想是:通过把字母移动一定的位数来实现加 ... 
- 20155210  潘滢昊   Java第一次实验---凯撒密码
		Java第一次实验---凯撒密码 实验内容 实现凯撒密码,并进行测试. 实验代码 import java.io.*; import java.util.Scanner; public class ks ... 
- Java 第十一届 蓝桥杯 省模拟赛 凯撒密码加密
		凯撒密码加密 题目 问题描述 给定一个单词,请使用凯撒密码将这个单词加密. 凯撒密码是一种替换加密的技术,单词中的所有字母都在字母表上向后偏移3位后被替换成密文.即a变为d,b变为e,-,w变为z,x ... 
- 凯撒密码 CH Round #57 - Story of the OI Class
		题目:http://ch.ezoj.tk/contest/CH%20Round%20%2357%20-%20Story%20of%20the%20OI%20Class/凯撒密码 题解:刚开始想map, ... 
- Python的一个解释凯撒密码的程序
		#!/usr/bin/env python # -*- coding: utf-8 -*- ''' { Title:CaserCode Author:naiquan Type:crypto Detai ... 
- 凯撒密码移位python
		#!/usr/bin/python'''凯撒密码'''a="gmbhqwertghjkcvbzn"s=[""]*len(a)for j in range(26) ... 
- FCC JS基础算法题(13):Caesars Cipher(凯撒密码)
		题目描述: 下面我们来介绍风靡全球的凯撒密码Caesar cipher,又叫移位密码.移位密码也就是密码中的字母会按照指定的数量来做移位.一个常见的案例就是ROT13密码,字母会移位13个位置.由'A ... 
随机推荐
- <stdbool.h>的使用
			转载: 1.https://www.cnblogs.com/jediael/archive/2013/02/03/4304259.html 2.https://zhidao.baidu.com/que ... 
- 【题解】[SCOI]windy数
			Link 题目大意:求给定一个区间内满足每一位的数相差大于\(2\)且没有前导零的数的个数. \(\text{Solution:}\) 我们可以按照数位\(dp\).设状态为当前要\(dp\)第\(p ... 
- java高级项目   jdbc与数据库连接数据库
			//图书管类 public class Book { private Integer id; private String b_name; private double b_price; privat ... 
- 2-K8S常用命令
			kubectl 命令行管理工具 类型 命令 描述 基础命令 create 通过文件名或标准输入创建资源 expose 为Deployment,Pod创建service run 在集群中运行一个特定的镜 ... 
- Rust之路(2)——数据类型 上篇
			[未经书面同意,严禁转载] -- 2020-10-13 -- Rust是系统编程语言.什么意思呢?其主要领域是编写贴近操作系统的软件,文件操作.办公工具.网络系统,日常用的各种客户端.浏览器.记事本. ... 
- MeteoInfoLab脚本示例:MODIS AOD
			MODIS的气溶胶光学厚度(AOD)产品应用很广,数据可以在Giovanni上下载:http://disc.sci.gsfc.nasa.gov/giovanni/overview/index.html ... 
- linux centos 05
			centos7安装mariadb 1.yum 得配置yum源,配置阿里云的 两个 yum源 ,阿里云的yum源中,会有 mariadb的软件包 阿里云的yum仓库中,mariadb版本如下 mar ... 
- 什么是C和C++标准——小白必看
			本文简要介绍编写C/C ++应用程序的领域,标准库的作用以及它是如何在各种操作系统中实现的. 我已经接触C++一段时间了,一开始就让我感到疑惑的是其内部结构:我所使用的内核函数和类从何而来? 谁发明了 ... 
- spring boot:解决cors跨域问题的两种方法(spring boot 2.3.2)
			一,什么是CORS? 1,CORS(跨域资源共享)(CORS,Cross-origin resource sharing), 它是一个 W3C 标准中浏览器技术的规范, 它允许浏览器向非同一个域的服务 ... 
- Hugo+Github 搭建个人博客(Windows环境下)
			目录 Hugo+Github 搭建个人博客(Windows环境下) 1.前言 2.Differences 2.1 https vs SSH 2.2 新建的github的仓库名必须为 用户名+githu ... 
