Java 对字符串简单的加密和解密
时间: 2024-09-25 21:20:54 浏览: 48
在Java中,对字符串进行简单的加密和解密通常可以使用一些常见的算法,例如凯撒密码(Caesar Cipher)、替换式加密(如替换每个字符为字母表中的固定位置字符)或者简单的位移操作。这里我们以凯撒密码为例,它是最基础的替换式加密方法之一:
**加密过程** (Caesar Cipher):
1. 选择一个偏移量(比如3),这是加密的“密钥”。
2. 对于每一个输入字符(假设是小写字母a-z),将其ASCII码加上偏移量,如果超过'z',就从'a'重新开始循环。
举个例子,输入字符串 "hello",偏移量为3,加密结果将是 "khoor"。
**解密过程**:
1. 取加密后的字符,减去相同的偏移量,同样处理溢出的情况。
下面是一个简单的Java示例,使用位移操作实现加密和解密:
```java
public class CaesarCipher {
public static String encrypt(String str, int shift) {
char[] encryptedChars = new char[str.length()];
for (int i = 0; i < str.length(); i++) {
char c = (char)(((str.charAt(i) - 'a' + shift) % 26) + 'a');
encryptedChars[i] = c;
}
return new String(encryptedChars);
}
public static String decrypt(String encrypted, int shift) {
return encrypt(encrypted, -shift); // 减去偏移量即可解密
}
// 示例
public static void main(String[] args) {
String original = "hello";
int key = 3;
String encrypted = encrypt(original, key);
System.out.println("Encrypted: " + encrypted);
String decrypted = decrypt(encrypted, key);
System.out.println("Decrypted: " + decrypted);
}
}
```
阅读全文