DES是对称加密算法的其中一个,用一个密钥进行加密解密数据,安全性能比较低,效率较高,一些不太重要的数据可以使用DES加密算法进行加密解密传输,其他的3DES与AES用法类似。
流程图
首先认真看一下流程图,在脑海里过一遍,然后其实也就是分为以下两个过程,传输完密钥后,就可以使用这个密钥加密数据发送给服务器,服务器拿密钥解密数据,完事。
OK,直接贴代码吧,注意下Base64转码传输以及密钥的传输就行了。
Server 端
package des;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.security.InvalidKeyException;
import java.security.Key;
import javax.crypto.BadPaddingException;
import javax.crypto.IllegalBlockSizeException;
//DES加密
public class Server {
public void openServer() throws IOException{
ServerSocket serverSocket=new ServerSocket(4400);
Thread thread=null;
Socket socket=null;
while(true){
socket=serverSocket.accept();
thread=new Thread(new myThread(socket));
thread.start();
}
}
public static void main(String[] args){
try {
new Server().openServer();
} catch (IOException e) {
System.out.println(e.getMessage());
e.printStackTrace();
}
}
}
class myThre