1:加密了数据库的密码(使用了MD5进行加密)
//封装在util包中
package utils;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class Md5 {
public static String MD5(String input) throws NoSuchAlgorithmException {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(input.getBytes());
byte[] digest = md.digest();
StringBuilder sb = new StringBuilder();
for (byte b : digest) {
sb.append(String.format("%02x", b & 0xff));
}
return sb.toString();
}
}
调用:
String str = "12345";
String Md5Str = Md5.MD5(str);
System.out.println("加密前的字符串:" + str);
System.out.println("加密后的字符串:" + Md5Str);
然后根据输入的账户查询对应的加密的密码和输入的密码进行对比,即可判断密码的正确性。
2:网络编程的学习:多发多送,文件的传输,文件重复名的解决方案。
多发多送:
mport java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
//客户端:多次发送数据
//服务端:接受多次接受数据,并打印
//1创建对象绑定10000端口
public static void main(String[] args) throws IOException {
//System.out.println(System.getProperty("user.dir"));
ServerSocket ss=new ServerSocket(10000);
Socket socket=ss.accept();
InputStreamReader isr=new InputStreamReader(socket.getInputStream());
int b;
while ((b= isr.read())!=-1){
System.out.println((char)b);
}
socket.close();
ss.close();
}
}
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
import java.util.Scanner;
//多发多送
public class Client {
public static void main(String[] args) throws IOException {
//客户端:多次发送数据,
//服务端:接受多次数据,并打印
//1:创建socket对象并连接服务端 TCP协议
Socket socket = new Socket("127.0.0.1", 10000);
//2:写出数据
Scanner cin=new Scanner(System.in);
OutputStream os=socket.getOutputStream();
while (true){
System.out.println("请输入您要发送的信息");
String str = cin.nextLine();
if("886".equals(str)){
break;
}else{
os.write(str.getBytes());
}
}
socket.close();
}
}
文件传输的代码还有个异常未解决这里不贴代码
文件重复名解决方案
String name =UUID.randomUUID().toString().replace("-","");
BufferedOutputStream bos=new BufferedOutputStream((new FileOutputStream("StudyClientServer\\Serverdir\\"+name+".jpg")));