JAVA字符串加密成7位的实现方法
1.流程表格
步骤 | 实现方法 |
---|---|
1. 获取待加密的字符串 | 使用Java的Scanner类获取用户输入的字符串 |
2. 将字符串转换为ASCII码 | 遍历字符串的每个字符,将每个字符转换为对应的ASCII码 |
3. 对ASCII码进行加密操作 | 对每个ASCII码进行加密操作,使其变为一个7位的二进制数 |
4. 将二进制数转换为字符 | 将加密后的二进制数转换为对应的字符 |
5. 输出加密后的字符串 | 将加密后的字符拼接成一个字符串,并输出 |
2.实现方法
步骤1:获取待加密的字符串
import java.util.Scanner;
public class StringEncryption {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入待加密的字符串:");
String input = scanner.nextLine();
scanner.close();
}
}
首先,我们需要使用Java的Scanner类来获取用户输入的待加密字符串。通过scanner.nextLine()
方法读取用户输入的一行字符串,并存储到变量input
中。
步骤2:将字符串转换为ASCII码
int[] asciiArray = new int[input.length()];
for (int i = 0; i < input.length(); i++) {
asciiArray[i] = (int) input.charAt(i);
}
我们使用一个整型数组asciiArray
来存储字符串中每个字符对应的ASCII码。通过遍历字符串的每个字符,使用charAt(i)
方法获取字符,然后使用(int)
进行强制类型转换,将字符转换为对应的ASCII码。
步骤3:对ASCII码进行加密操作
String[] binaryArray = new String[asciiArray.length];
for (int i = 0; i < asciiArray.length; i++) {
binaryArray[i] = String.format("%7s", Integer.toBinaryString(asciiArray[i])).replace(' ', '0');
}
我们使用一个字符串数组binaryArray
来存储每个ASCII码加密后的二进制数。通过遍历ASCII码数组,使用Integer.toBinaryString()
方法将每个ASCII码转换为二进制字符串,并使用String.format("%7s", binary)
方法将二进制字符串格式化为7位,不足7位的在前面补0。
步骤4:将二进制数转换为字符
char[] encryptedArray = new char[binaryArray.length];
for (int i = 0; i < binaryArray.length; i++) {
encryptedArray[i] = (char) Integer.parseInt(binaryArray[i], 2);
}
我们使用一个字符数组encryptedArray
来存储每个加密后的二进制数对应的字符。通过遍历二进制字符串数组,使用Integer.parseInt(binary, 2)
方法将二进制字符串转换为对应的整数,然后使用(char)
进行强制类型转换,将整数转换为对应的字符。
步骤5:输出加密后的字符串
String encryptedString = String.valueOf(encryptedArray);
System.out.println("加密后的字符串为:" + encryptedString);
我们使用String.valueOf(charArray)
方法将字符数组转换为字符串,并存储到变量encryptedString
中。最后,使用System.out.println()
方法将加密后的字符串输出到控制台。
3.关系图
erDiagram
STRING --|{ ASCII码
ASCII码 --|{ 二进制数
二进制数 --|{ 字符
以上就是实现Java字符串加密成7位的方法。通过以上步骤,我们可以将待加密的字符串转换为ASCII码,再将ASCII码加密为7位的二进制数,最后再将二进制数转换为字符,得到加密后的字符串。希望对你有帮助!