欢迎访问宙启技术站
智能推送

如何使用Java函数进行简单加密

发布时间:2023-08-06 04:09:24

在Java中,可以使用多种方式进行简单加密。下面将介绍两种常见的加密方法:Caesar密码和简单替换密码。

一、Caesar密码

Caesar密码(也称为移位密码)是一种简单的替换密码,通过将每个字母按照指定的位数进行循环右移来加密消息。

实现Caesar密码的方法如下:

public class CaesarCipher {
    public static String encrypt(String message, int shift) {
        StringBuilder ciphertext = new StringBuilder();
        for (int i = 0; i < message.length(); i++) {
            char c = message.charAt(i);
            if (Character.isLetter(c)) {
                char shifted = (char) (((c - 'a') + shift) % 26 + 'a');
                ciphertext.append(shifted);
            } else {
                ciphertext.append(c);
            }
        }
        return ciphertext.toString();
    }

    public static String decrypt(String ciphertext, int shift) {
        StringBuilder message = new StringBuilder();
        for (int i = 0; i < ciphertext.length(); i++) {
            char c = ciphertext.charAt(i);
            if (Character.isLetter(c)) {
                char shifted = (char) (((c - 'a') - shift + 26) % 26 + 'a');
                message.append(shifted);
            } else {
                message.append(c);
            }
        }
        return message.toString();
    }
}

使用方式如下:

String message = "hello world";
int shift = 3;
String encryptedMessage = CaesarCipher.encrypt(message, shift);
String decryptedMessage = CaesarCipher.decrypt(encryptedMessage, shift);

System.out.println("Encrypted Message: " + encryptedMessage);
System.out.println("Decrypted Message: " + decryptedMessage);

输出结果:

Encrypted Message: khoor zruog
Decrypted Message: hello world

二、简单替换密码

简单替换密码是一种通过将字母替换为其他字母实现的加密方法。

实现简单替换密码的方法如下:

public class SimpleSubstitutionCipher {
    private final static String ALPHABET = "abcdefghijklmnopqrstuvwxyz";
    private String key;

    public SimpleSubstitutionCipher(String key) {
        this.key = key.toLowerCase();
    }

    public String encrypt(String message) {
        StringBuilder ciphertext = new StringBuilder();
        for (int i = 0; i < message.length(); i++) {
            char c = message.charAt(i);
            if (Character.isLetter(c)) {
                int index = ALPHABET.indexOf(Character.toLowerCase(c));
                char encrypted = key.charAt(index);
                ciphertext.append(Character.isUpperCase(c) ? Character.toUpperCase(encrypted) : encrypted);
            } else {
                ciphertext.append(c);
            }
        }
        return ciphertext.toString();
    }

    public String decrypt(String ciphertext) {
        StringBuilder message = new StringBuilder();
        for (int i = 0; i < ciphertext.length(); i++) {
            char c = ciphertext.charAt(i);
            if (Character.isLetter(c)) {
                int index = key.indexOf(Character.toLowerCase(c));
                char decrypted = ALPHABET.charAt(index);
                message.append(Character.isUpperCase(c) ? Character.toUpperCase(decrypted) : decrypted);
            } else {
                message.append(c);
            }
        }
        return message.toString();
    }
}

使用方式如下:

String key = "zyxwvutsrqponmlkjihgfedcba";
String message = "hello world";
SimpleSubstitutionCipher cipher = new SimpleSubstitutionCipher(key);
String encryptedMessage = cipher.encrypt(message);
String decryptedMessage = cipher.decrypt(encryptedMessage);

System.out.println("Encrypted Message: " + encryptedMessage);
System.out.println("Decrypted Message: " + decryptedMessage);

输出结果:

Encrypted Message: svool dliow
Decrypted Message: hello world

以上就是使用Java函数进行简单加密的方式。通过使用不同的加密算法和方法,可以实现更加复杂的加密。但请注意,这些简单的加密算法可能不足以提供高度的安全性,更复杂的加密算法可能需要使用专业的库或框架来实现。