为了账号安全,请及时绑定邮箱和手机立即绑定

凯撒加密法 给大家分享一下 有大神路过的话顺便给指点下

标签:
Java

主入口
Test.java

package Kaisa;

/**
 * 凯撒加密
 */

import java.util.Scanner;

/**
 * Created by WTFX on 2016/12/17.
 */
public class Test {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        do {
            System.out.println("1.加密\n2.解密\n输入其他任意数退出");
            int op = sc.nextInt();
            if (op == 1) {
                System.out.println("请输入你需要加密的明文:");
                String key = sc.next();
                Encrypt E = new Encrypt(key);
                System.out.println(E.toString());
            } else if (op == 2) {
                System.out.println("请输入你要解密的密文:");
                String value=sc.next();
                Decode D=new Decode(value);
                System.out.println(D.toString());
            } else {
                break;
            }
        }while (true);
    }
}

加密
Encrypt.java

package Kaisa;

import java.util.HashMap;
import java.util.Map;

import java.util.Map;

/**
 * Created by WTFX on 2016/12/17.
 * 加密
 */
public class Encrypt {
    private String key;
    private String value="";
    Map<String,String> map=new HashMap();

    public Encrypt() {}

    @Override
    public String toString() {
        String str_key="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
        String str_value="DEFGHIJKLMNOPQRSTUVWXYZABCdefghijklmnopqrstuvwxyzabc";
        for(int i=0;i<str_key.length();i++){
            map.put(String.valueOf(str_key.charAt(i)),String.valueOf(str_value.charAt(i)));
        }
        for(int i=0;i<this.key.length();i++){
            value+=map.get(String.valueOf(this.key.charAt(i)));
        }

        return "加密成功!\n密文:"+value;
    }

    public Encrypt(String key) {
        this.key = key;
    }
}

解密
Decode.java

package Kaisa;

import java.util.*;

/**
 * Created by WTFX on 2016/12/17.
 * 解密
 */
public class Decode {
    private String key="";
    private String value;
    Map<String,String> map=new HashMap();

    public Decode(String value) {
        this.value = value;
    }

    @Override
    public String toString() {
        String str_key="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
        String str_value="DEFGHIJKLMNOPQRSTUVWXYZABCdefghijklmnopqrstuvwxyzabc";
        for(int i=0;i<str_key.length();i++){
            map.put(String.valueOf(str_value.charAt(i)),String.valueOf(str_key.charAt(i)));
        }
        for(int i=0;i<value.length();i++){
            key+=map.get(String.valueOf(value.charAt(i)));
        }

        return "解密成功!\n明文:"+key;
    }
}
  • 本来想加密解密想用一个集合的 无奈功力不到位。
    有几点疑惑
    1.能不能通过一个集合实现
    2.能否通过转换byte 的方式 在ASCII上完成
    3.代码可以怎样精简
    有大神出没的话给个指点呗(^-^)V
点击查看更多内容
5人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
2
获赞与收藏
43

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消