⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 authclient.java

📁 JAVA的加密源程序
💻 JAVA
字号:
/*Christoforos Pirillos @ Villanova University - May 1999based on code from the book "Java Network Programming" by Hughes*/package encryption;import java.io.*;import java.net.*;/** This class is used by the remote side of the connection.*/public class AuthClient {protected InputStream i;protected OutputStream o;protected Socket s;/** Accepts the server and user information. it automatically connects tothe server and authenticates the client*/public AuthClient (String server, int port, String user, String password)		throws IOException {	s=new Socket (server, port);	OutputStream out=s.getOutputStream();	new DataOutputStream(out).writeUTF(user);	out.flush();	InputStream in = s.getInputStream();	long encKey = new DataInputStream(in).readLong();	DES keyDes = new DES (Password.keyFromPassword(password));	long key=keyDes.decrypt(encKey);	if (!DES.isParity (key)) {		s.close();		throw new AuthException ("Incorrect Password.");	}	byte[] iv=new byte[8];	Crypt.longToBytes (Password.nextKeyFromPassword (password),iv,0);	Cipher sessionDES = new CBCCipher (new DES (key),iv);	long challenge = System.currentTimeMillis();	byte[] temp = new byte[8];	Crypt.longToBytes (challenge, temp, 0);	out.write(sessionDES.encipher (temp));	new DataInputStream(in).readFully(temp);	long response = Crypt.bytesToLong (sessionDES.decipher(temp),0);	if (response != challenge+1)		throw new AuthException ("Challenge/response failed.");	Crypt.longToBytes (response+1, temp, 0);	out.write(sessionDES.encipher(temp));	o = new CipherOutputStream (out, sessionDES);	i = new CipherInputStream (in, sessionDES);}/** Returns the encrypted stream from the server*/public InputStream getInputStream () {	return i;}/** Returns the encrypted stream from the server*/public OutputStream getOutputStream () {	return o;}/** Returns the encrypted Socket from the server*/public Socket getSocket() {	return s;}/** for testing purposes*/public static void main (String args[]) throws IOException{	AuthClient conn = new AuthClient("localhost",7000,args[0],args[1]); DataInputStream in =new DataInputStream(conn.getInputStream()); byte[] b = new byte[8]; int c;	in.readFully(b);		System.out.println(b.toString());}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -