Java:如何创建一个通过交换字符对来加密行的程序?

标签 java encryption

我正在寻找一种简单的方法来编写程序,通过交换字符对来加密行,这些字符由用户输入。例如,如果您写了以下任何一个:

Original line         Encrypted line
abcdef                badcfe
The quick brown fox   hT euqci krbwo nofx
abc                   bac

我只能完成像这样的简单加密:

import java.util.Scanner;
public class Encryption
{
public static void main(String[] args){
    Scanner kb = new Scanner(System.in);
    System.out.println("enter a line");
    String line = kb.nextLine();
    String encrypted="";
    for (int i=0; i<line.length(); i++){
        char c = line.charAt(i);
        if (c == 'a')
            encrypted += 'e';
        else if (c == 'e')
            encrypted += 'a';
        else 
            encrypted += c;
    }
    System.out.println(encrypted);
}

可以修改它来执行交换对加密吗?

最佳答案

这可能有用...

public class Test {

    public static void main(String[] args){

        Scanner kb = new Scanner(System.in);
        System.out.println("enter a line");
        String line = kb.nextLine();

        String encrypted = encriptInput(line);

        System.out.println(encrypted);
    }

    private static String encriptInput(String line) {

        String[] splitedChars = line.split("(?<=\\G.{2})");
        String outPut = "";

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

            outPut = splitedChars[i].trim().length() < 2?outPut+splitedChars[i]:outPut+splitedChars[i].charAt(1)+splitedChars[i].charAt(0);
        }

        return outPut;
    }
}

关于Java:如何创建一个通过交换字符对来加密行的程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40297410/

相关文章:

java - 位置管理器在 Android 4.0.2 模拟器中不工作

java - 抽象类方法 - 实例化子类对象?

java - Spring属性解密

Android 在运行时解密和播放 mp4

encryption - 为什么使用 JSON Web Tokens (JWT) 而不是普通加密

java - 有人可以(详细地)解释 Dagger @Module 注释中的各种选项如何工作并相互交互吗?

java - Android 套接字抛出 UnknownHostException 错误

java - 我如何在首选项中执行 "sub-categories"

java - bouncy caSTLe pgp - PartialInputStream 中的流过早结束

encryption - EMV 如何加密非接触式交易?