在java聊天中添加caesar密码
所以,我只想在我的java聊天应用程序中添加caesar密码,如何添加它们?我要加密客户端服务器,然后解密服务器上的服务器 顺便说一下,下面是我的java聊天代码:在java聊天中添加caesar密码,java,encryption,chat,Java,Encryption,Chat,所以,我只想在我的java聊天应用程序中添加caesar密码,如何添加它们?我要加密客户端服务器,然后解密服务器上的服务器 顺便说一下,下面是我的java聊天代码: import java.io.*; import java.net.*; import java.util.Scanner; public class chat { static void Client() throws IOException { String ip; Buffe
import java.io.*;
import java.net.*;
import java.util.Scanner;
public class chat
{
static void Client() throws IOException
{
String ip;
BufferedReader cmb=new BufferedReader(new InputStreamReader(System.in));
System.out.println("Masukkan IP Server : ");
ip=cmb.readLine();
Socket client=null;
client=new Socket(""+ip,8888);
BufferedReader sin=new BufferedReader(new
InputStreamReader(client.getInputStream()));
PrintStream sout=new PrintStream(client.getOutputStream());
BufferedReader stdin=new BufferedReader(new InputStreamReader(System.in));
String s;
while (true)
{
System.out.print("Client : ");
s=stdin.readLine();
sout.println(s);
s=sin.readLine();
System.out.print("Server : "+s+"\n");
if(s.equalsIgnoreCase("Bye"))
break;
}
stdin.close();
sout.close();
sin.close();
client.close();
}
static void Server() throws IOException {
ServerSocket server=null;
Socket client=null;
try
{
server=new ServerSocket(8888);
System.out.println("Server telah online");
client=server.accept();
System.out.println("Client telah masuk dan bisa online");
}
catch(IOException e)
{
System.out.println(e.getMessage());
System.exit(-1);
}
System.out.println("Silahkan chat");
InputStream masuk=client.getInputStream();
OutputStream keluar=client.getOutputStream();
BufferedReader in=new BufferedReader(new
InputStreamReader(client.getInputStream()));
PrintStream out=new PrintStream(client.getOutputStream());
BufferedReader stdin=new BufferedReader(new InputStreamReader(System.in));
String pesan;
while (true)
{
pesan=in.readLine();
if(pesan.equalsIgnoreCase("stop"))
{
out.println("sampai jumpa");
break;
}
System.out.println("Client chat : "+pesan);
System.out.print("Server : ");
pesan=stdin.readLine();
out.println(pesan);
}
server.close();
client.close();
in.close();
out.close();
stdin.close();
}
public static void main(String args[]) throws IOException
{
int pil;
System.out.println("Masukkan Angka yang akan Anda Pilih");
System.out.println("1. Server");
System.out.println("2. Client");
System.out.println("3. Keluar");
System.out.println();
System.out.println("Masukkan Pilihan : ");
Scanner input = new Scanner(System.in);
pil = Integer.parseInt(input.next());
switch(pil)
{
case 1:
Server();
break;
case 2:
Client();
break;
case 3:
System.out.println();
System.out.println("Terima Kasih Telah Menggunakan Aplikasi Ini");
break;
default :
System.out.println("Maaf Keyword Yang Anda Masukkan Salah");
System.out.println("Silahkan Ulangi Lagi");
break;
}
}}
我知道凯撒密码是如何工作的,但我不知道如何在我的代码中实现它们。如我在评论中所述:
public String encrypt(String input, int key){
char[] chars = input.toUpperCase().replaceAll("[^A-Z]", "").toCharArray();
for (int i = 0; i < chars.length; i++){
chars[i] -= 65;
chars[i] = (char)((chars[i] + key) % 26);
chars[i] += 65;
}
return String.valueOf(chars);
}
public String decrypt(String input, int key){
char[] chars = input.toUpperCase().replaceAll("[^A-Z]", "").toCharArray();
for (int i = 0; i < chars.length; i++){
chars[i] -= 65;
chars[i] = (char)((chars[i] - key) % 26);
chars[i] += 65;
}
return String.valueOf(chars);
}
公共字符串加密(字符串输入,int密钥){
char[]chars=input.toUpperCase().replaceAll(“[^A-Z]”,“”)。toCharArray();
for(int i=0;i
下面是一个运行示例:句子应该是全大写的,没有空格、数字或其他符号,只有大写字母。然后将
String
更改为char[]
,然后选择键(范围从0到26,假设您将使用英语字母表)。从char[]中的每个char
中减去65,然后在模26中添加键。然后将65添加到数组中的所有char
s中,并将char[]
转换回String
。可能是@MatjažMav的重复,我不太明白,你能给我解释更多细节吗?顺便说一下,谢谢!在客户端,在向服务器发送文本之前。我已经添加了代码,但它不起作用,我的意思是它没有做任何事情。您询问如何实现Caesar密码,此方法使用输入字符串和密钥(数字介于0和25之间)。结果,它返回加密的输入。我不知道问题出在哪里,但我认为您应该从基本的控制台应用程序开始学习。我不确定,这段代码是你自己写的吗?我已经编辑了答案,请看一下运行示例。啊,我很困惑,哈哈,我把字符串改成了字符,但是运行代码的另一个函数是错误的,不管怎样