// 一段Java中加密文字的小代码,挺有意思的所以拿到博客分享。我用的Java编译器为
//IntelliJ IDEA Community Edition 2021.3
//后面有C语言代码,我用的编译器为vs2022
package Crack_code;
import java.util.Scanner;
public class or
{
public static void main(String[] args)
{
int y;
do
{
Scanner scanner=new Scanner(System.in);
String a=scanner.next();//字符串变量接收从键盘录入的文字
char[] str;;//定义数组存放字符串中的字符
str=a.toCharArray();//把字符串中的字符转存到数组中
char key='8';//定义密钥
int len = str.length;//计算字符串长度
for (int i = 0; i < len; i++)//对数组中的字符串加密处理
{
str[i]=(char)(str[i]^key);
System.out.print(str[i]);
}
System.out.println();
for (int i = 0; i < len; i++)//解密数组中的字符串并输出,用来对照上面加密处理正不正确
{
str[i]=(char)(str[i]^key);
System.out.print(str[i]);
}
System.out.println();//换行
System.out.println("需要回复吗?需要请输入1,退出请输入0");
y=scanner.nextInt();
}while(y==1);
}
}
2C语言版本的可以在vs编译器中使用relase运行这样就可以生成发行版本,直接在windows系统中运行
#define _CRT_SECURE_NO_WARNINGS 1
#define _CRT_INTERNAL_LOCAL_PRINTF_OPTIONS
#include<string.h>
#include<stdio.h>
int main()
{
int result = 1;
char str[128] = { "\0" };//定义数组存放字符串中的字符
char key = '8';//定义密钥
int len = 0;//用来存放字符串的长度
int i;
int y = 0;//定义y用来判断循环是否继续
do
{
while (1)
{
if (result == 1)
{
printf("请输入你想翻译的文字:");
scanf("%s", &str);
len = strlen(str);//计算字符串长度
break;
}
}
printf("翻译后的语句为:");
for (i = 0; i < len; i++)
{
str[i] = str[i] ^ key;
printf("% c", str[i]);
}
printf("\n翻译前的语句为:");
for (i = 0; i < len; i++)
{
printf("%c", str[i] ^ key);
}
printf("\n回复:1,退出:0\n请选择>>");
scanf("%d",&y);
} while (y);
}