2003 JEP
IM M 7
1.1 IM Yahoo!AOL IM Nilsen IM MSN Yahoo ICQ,AOL Nilsen IM Total 3,002,762 2,498,185 MSN Messenger 2,251,189 1,803,069 Yahoo! Messenger 698,645 638,660 ICQ 359,908 335,208 AOL Instant Messenger 102,327 98,798 70 IM
1.2 IM XML IM JabberSoftwareFundation SSL encryption 2 Bantu Bantu Messenger And Presence SSL Platform Divine MindAlign Software Ikimbo Ommiprise SSL Jabber JabCast Communications Platform Secure Realtime Communications SSL XML encryption DES SSL SSL IM SSL netrating IM IM IM
1.3 IM [3] Java Java IM
p g g a mod 1 q 1 p * p z
p g y 1 x mod p g p g y ax x mod mod 1 p g z r mod p z b a mod p g p z b ra a mod mod p b k x mod
p g p z p b k xar xa x mod mod mod p y k r mod ' p g p g y xa x mod mod 1 p g p y k rxa r mod mod ' p g k xar mod p g k xar mod '
3 3 g 2p a12a23a34 3 x15x22x32 y 1 r 2 4 mod13 2 mod 1 2 1 p g g a 8 mod13 2 mod 2 3 2 p g g a 3 mod13 2 mod 3 4 3 p g g a 10 mod13 4 mod 1 1 5 1 p g y x 12 mod13 8 mod 2 2 2 2 p g y x 9 mod13 3 mod 3 3 2 3 p g y x 1 4 mod13 2 mod 2 p g z r 2 3 1 mod13 12 mod 2 2 2 p y K r 3 mod13 9 mod 3 3 2 p y K r 2 K2 3 K3 z 3 12 mod13 4 mod 2 3 2 p z b a 9 mod13 4 mod 3 4 3 p z b a
b2b3 3 1 mod13 12 mod 2 2 2 2 p b K x 3 mod13 9 mod 3 3 2 3 p b K x 1
2 IM BigInteger g * p Z q p, q 1 p a x y k
data gqp user ID switch ID user ID IDs+IDmlist+IDchatlist+IDpass+ID ID a g p p g g a mod 1 g1 IDgqpg1 y ID ID ID ID ID y ID mlist+id ID
ID z IP s+id ID mlist+id z a p z b a mod IP s+id z ID mlist+id while ID ID IP s+id s+id IP ID ID ID IP s+id ID chatlist+id ID ID chatlist+id ID s+id IP ID chatlist+id while
userdatamlistpasschatkey x IDgqpg1 x p g y 1 x mod y userdata ID ID y+idkey+id ID ID y+id mlist ID
userdata r r r r mod q p g z r mod z IDz mlist ID y+id p y k r mod k key+id mlist+id while ID b y+id p b k x mod k key+id ID
key+id ID ID Online! ID ID key+id ID chatkey chatkey Online! ID ID chatkey ID
data g q p user ID ID a y mlist+id ID ID s+id IP Port ID chatlist+id ID pass+id ID userdata ID x g q p g1 y mlist ID ID pass pass chatkey k y+id y ID key+id k ID ID
ENTER ID mlist 1 mlist ID+online
7 8
haikei.txt
3MBACK.txt SAVE LOAD
5 3
[1]Nielsen//NetRatings, http://www.netratings.co.jp/im.html [2]Caroly D. Marsan, Secure Instant messaging software coming for corporate users Network World Fusion http://www.nwfusion.com/news/2002/128936_01-14-2002.html [3] Vol.,pp.961-965,2002 [4]Java
server1.java import java.io.*; import java.net.*; import java.lang.*; import java.math.*; import java.util.*; public class server1{ public static void main(string argv[]){ //kidou try{ int port Integer.parseInt(argv[0]); ServerSocket ss new ServerSocket(port); while(true){ Socket s ss.accept(); System.out.println("accept: " + s); new s1t1(s); catch(exception e){ System.out.println(e); class s1t1 extends Thread{ Random rnd new Random(); BigInteger g new BigInteger("0"); BigInteger q new BigInteger("0"); BigInteger p new BigInteger("0"); BigInteger user new BigInteger("0");
Socket s; s1t1(socket s0){ s s0; start(); public void run(){ try{ BufferedReader br new BufferedReader(new FileReader("data")); String line; line br.readline(); g new BigInteger(line); line br.readline(); q new BigInteger(line); line br.readline(); p new BigInteger(line); br.close(); br new BufferedReader(new FileReader("user")); line br.readline(); user new BigInteger(line); catch(exception e){ try{
OutputStream os s.getoutputstream(); PrintWriter pw new PrintWriter(os); InputStream is s.getinputstream(); InputStreamReader isr new InputStreamReader(is); BufferedReader d new BufferedReader(isr); //ID kousin BigInteger g1 new BigInteger("0"); BigInteger a new BigInteger("0"); BigInteger y new BigInteger("0"); BigInteger pa new BigInteger("0"); user user.add(biginteger.valueof(1)); String UU user.tostring(); FileWriter("user"))); PrintWriter pr new PrintWriter(new BufferedWriter(new pr.println(user); pr.close(); File file2 new File(UU); file2.createnewfile(); File file3 new File("mlist" + UU); file3.createnewfile(); File file4 new File("s" + UU); file4.createnewfile(); File file5 new File("chatlist" + UU); file5.createnewfile(); File file6 new File("pass" + UU); file6.createnewfile();
//kaku user ni taiousita himitukagi seisei FileWriter(UU))); a new BigInteger(128,rnd); System.out.println("a " + a); pr new PrintWriter(new BufferedWriter(new pr.println(a); g1 g.modpow(a,p); //sousin //jusin pw.println(user); pw.println(g); pw.println(q); pw.println(p); pw.println(g1); pw.flush(); String c d.readline(); y new BigInteger(c); c d.readline(); pa new BigInteger(c); pr.println(y); pr.close(); FileWriter("pass" + UU))); pr new PrintWriter(new BufferedWriter(new pr.println(pa); pr.close();
System.out.println("y " + y); s.close(); catch(exception e){ System.out.println(e); server2.java import java.io.*; import java.net.*; import java.lang.*; import java.math.*; import java.util.random; public class server2{ public static void main(string argv[]){ try{ int port Integer.parseInt(argv[0]); ServerSocket ss new ServerSocket(port); while(true){ Socket s ss.accept(); System.out.println("accept: " + s); new s2t1(s); catch(exception e){ System.out.println(e);
class s2t1 extends Thread{ Socket s; s2t1(socket s0){ s s0; start(); public void run(){ try{ OutputStream os s.getoutputstream(); PrintWriter pw new PrintWriter(os); InputStream is s.getinputstream(); InputStreamReader isr new InputStreamReader(is); BufferedReader d new BufferedReader(isr); System.out.println(s.getInetAddress()); System.out.println(s.getPort()); String c,ii; ii d.readline(); c d.readline(); BufferedReader br new BufferedReader(new FileReader(c)); String line; line br.readline(); line br.readline(); br.close(); System.out.println("y " + line); pw.println(line);
pw.flush(); s.close(); catch(exception e){ System.out.println("No user!!"); server3.java import java.io.*; import java.net.*; import java.lang.*; import java.math.*; import java.util.random; class server3{ public static void main(string argv[]){ try{ int port Integer.parseInt(argv[0]); ServerSocket ss new ServerSocket(port); while(true){ Socket s ss.accept(); System.out.println("accept: " + s); new s3t1(s); catch(exception e){ System.out.println(e);
class s3t1 extends Thread{ Socket s; s3t1(socket s0){ s s0; start(); public void run(){ BigInteger g new BigInteger("0"); BigInteger q new BigInteger("0"); BigInteger p new BigInteger("0"); try{ BufferedReader br new BufferedReader(new FileReader("data")); String line; line br.readline(); g new BigInteger(line); line br.readline(); q new BigInteger(line); line br.readline(); p new BigInteger(line); br.close(); catch(exception e){
try{ OutputStream os s.getoutputstream(); PrintWriter pw new PrintWriter(os); InputStream is s.getinputstream(); InputStreamReader isr new InputStreamReader(is); BufferedReader d new BufferedReader(isr); String I,c,uI,yourhost,yourport; I d.readline(); yourhost d.readline(); yourport d.readline(); c d.readline(); BigInteger z new BigInteger(c); FileWriter("s"+I))); PrintWriter pr new PrintWriter(new BufferedWriter(new pr.println(yourhost); pr.println(yourport); pr.close(); BufferedReader br1 new BufferedReader(new FileReader("mlist"+I)); while((ui br1.readline())!null){ BufferedReader br2 new BufferedReader(new FileReader(uI)); String line; line br2.readline();
BigInteger a new BigInteger(line); br2.close(); BigInteger b new BigInteger("0"); b z.modpow(a,p); System.out.println("b" + ui + " " +b); try{ BufferedReader br3 new BufferedReader(new FileReader("s"+uI)); String userhost,userport; userhost br3.readline(); userport br3.readline(); int userport2 Integer.parseInt(userport); Socket s2 new Socket(userhost, userport2); OutputStream os2 s2.getoutputstream(); PrintWriter pw2 new PrintWriter(os2); pw2.println(i); pw2.println(b); pw2.flush(); catch(exception e){ br1.close(); s.close();
catch(exception e){ System.out.println(e); server4.java import java.io.*; import java.net.*; import java.lang.*; import java.math.*; import java.util.random; class server4{ public static void main(string argv[]){ try{ int port Integer.parseInt(argv[0]); ServerSocket ss new ServerSocket(port); while(true){ Socket s ss.accept(); new s4t1(s); catch(exception e){ System.out.println(e); class s4t1 extends Thread{
Socket s; s4t1(socket s0){ s s0; start(); public void run(){ try{ OutputStream os s.getoutputstream(); PrintWriter pw new PrintWriter(os); InputStream is s.getinputstream(); InputStreamReader isr new InputStreamReader(is); BufferedReader d new BufferedReader(isr); String I,c,uI,yourhost,yourport; I d.readline(); ui d.readline(); yourhost d.readline(); yourport d.readline(); c d.readline(); System.out.println(c); FileWriter("s"+I))); PrintWriter pr new PrintWriter(new BufferedWriter(new pr.println(yourhost); pr.println(yourport); pr.close(); try{ BufferedReader br3
new BufferedReader(new FileReader("s"+uI)); String userhost,userport; userhost br3.readline(); userport br3.readline(); int userport2 Integer.parseInt(userport); Socket s2 new Socket(userhost, userport2); OutputStream os2 s2.getoutputstream(); PrintWriter pw2 new PrintWriter(os2); pw2.println(i); pw2.println(c); pw2.flush(); catch(exception e){ s.close(); catch(exception e){ System.out.println(e); server5.java import java.io.*; import java.net.*; import java.lang.*; import java.math.*;
import java.util.random; class server5{ public static void main(string argv[]){ try{ int port Integer.parseInt(argv[0]); ServerSocket ss new ServerSocket(port); while(true){ Socket s ss.accept(); new s5t1(s); catch(exception e){ System.out.println(e); class s5t1 extends Thread{ Socket s; s5t1(socket s0){ s s0; start(); public void run(){ try{ OutputStream os s.getoutputstream(); PrintWriter pw new PrintWriter(os); InputStream is s.getinputstream(); InputStreamReader isr new InputStreamReader(is); BufferedReader d new BufferedReader(isr);
String I,c,uI,yourhost,yourport; I d.readline(); yourhost d.readline(); yourport d.readline(); c d.readline(); System.out.println(c); FileWriter("s"+I))); PrintWriter pr new PrintWriter(new BufferedWriter(new pr.println(yourhost); pr.println(yourport); pr.close(); BufferedReader br1 new BufferedReader(new FileReader("chatlist"+I)); while((ui br1.readline())!null){ try{ BufferedReader br3 new BufferedReader(new FileReader("s"+uI)); String userhost,userport; userhost br3.readline(); userport br3.readline(); int userport2 Integer.parseInt(userport); Socket s2 new Socket(userhost, userport2);
OutputStream os2 s2.getoutputstream(); PrintWriter pw2 new PrintWriter(os2); pw2.println(i); pw2.println(c); pw2.flush(); catch(exception e){ br1.close(); s.close(); catch(exception e){ System.out.println(e); client1.java import java.io.*; import java.net.*; import java.io.*; import java.net.*; import java.lang.*; import java.math.*; import java.util.random; class client1{
public static void main(string args[]){ Random rnd new Random(); BigInteger x new BigInteger(128,rnd); BigInteger g new BigInteger("0"); BigInteger q new BigInteger("0"); BigInteger p new BigInteger("0"); BigInteger g1 new BigInteger("0"); BigInteger y new BigInteger("0"); BigInteger pa new BigInteger(128,rnd); try{ String host args[0]; int port Integer.parseInt(args[1]); Socket s new Socket(host, port); InputStream is s.getinputstream(); InputStreamReader isr new InputStreamReader(is); BufferedReader d new BufferedReader(isr); OutputStream os s.getoutputstream(); PrintWriter pw new PrintWriter(os); String c; File file1 new File("userdata"); file1.createnewfile(); FileWriter("userdata"))); PrintWriter pr new PrintWriter(new BufferedWriter(new //jusin c d.readline(); BigInteger ID new BigInteger(c); System.out.println("ID " + ID);
System.out.println("x " + x); c d.readline(); g new BigInteger(c); System.out.println("g " + g); pr.println(id); pr.println(x); pr.println(g); c d.readline(); q new BigInteger(c); System.out.println("q " + q); pr.println(q); c d.readline(); p new BigInteger(c); System.out.println("p " + p); pr.println(p); c d.readline(); g1 new BigInteger(c); System.out.println("g1 " + g1); pr.println(g1); //koukaikagi y g1.modpow(x,p); System.out.println("y " + y); pr.println(y); pr.close();
//sousin pw.println(y); pw.println(pa); pw.flush(); File file2 new File("mlist"); file2.createnewfile(); File file3 new File("pass"); file3.createnewfile(); pr new PrintWriter(new BufferedWriter(new FileWriter("pass"))); pr.println(pa); pr.close(); File file4 new File("chatkey"); file4.createnewfile(); catch(exception e){ System.out.println(e); client2.java import java.io.*; import java.net.*; import java.lang.*; import java.math.*; import java.util.random;
class client2{ public static void main(string args[]){ BigInteger y new BigInteger("0"); BigInteger I new BigInteger("0"); try{ String host args[0]; int port Integer.parseInt(args[1]); Socket s new Socket(host, port); InputStream is s.getinputstream(); InputStreamReader isr new InputStreamReader(is); BufferedReader d new BufferedReader(isr); OutputStream os s.getoutputstream(); PrintWriter pw new PrintWriter(os); String c; BufferedReader br new BufferedReader(new FileReader("userdata")); String ii; ii br.readline(); I new BigInteger(ii); br.close(); String ID args[2]; pw.println(i); pw.println(id); pw.flush(); c d.readline(); y new BigInteger(c); File file1 new File("y"+ID); file1.createnewfile();
File file2 new File("key"+ID); file2.createnewfile(); PrintWriter pr new PrintWriter(new BufferedWriter(new FileWriter("y"+ID))); pr.println(y); pr.close(); BufferedReader br2 new BufferedReader(new FileReader("mlist")); PrintWriter pr2 new PrintWriter(new BufferedWriter(new FileWriter("mlist"))); String TI; while((ti br2.readline())!null){ pr2.println(ti); pr2.println(id); pr2.close(); br2.close(); System.out.println("y" + ID + " " +y); s.close(); catch(exception e){ System.out.println(e); client3.java
import java.io.*; import java.net.*; import java.lang.*; import java.math.*; import java.util.random; public class client3{ public static void main(string args[]){ Random rnd new Random(); BigInteger I new BigInteger("0"); BigInteger x new BigInteger("0"); BigInteger g new BigInteger("0"); BigInteger q new BigInteger("0"); BigInteger p new BigInteger("0"); BigInteger g1 new BigInteger("0"); BigInteger y new BigInteger("0"); try{ BufferedReader br new BufferedReader(new FileReader("userdata")); String line; line br.readline(); I new BigInteger(line); line br.readline(); x new BigInteger(line); line br.readline(); g new BigInteger(line); line br.readline(); q new BigInteger(line); line br.readline(); p new BigInteger(line); line br.readline();
g1 new BigInteger(line); line br.readline(); y new BigInteger(line); br.close(); catch(exception e){ try{ String host args[0]; int port Integer.parseInt(args[1]); Socket s new Socket(host, port); InputStream is s.getinputstream(); InputStreamReader isr new InputStreamReader(is); BufferedReader d new BufferedReader(isr); OutputStream os s.getoutputstream(); PrintWriter pw new PrintWriter(os); InetAddress hostname InetAddress.getLocalHost(); String c; BigInteger yy new BigInteger("0"); BigInteger r new BigInteger(128,rnd); BigInteger r2,z,k; r2 r.remainder(q); z g.modpow(r2,p); String ID; BufferedReader br1 new BufferedReader(new FileReader("mlist")); while((id br1.readline())!null){
BufferedReader br new BufferedReader(new FileReader("y"+ID)); String line br.readline(); yy new BigInteger(line); br.close(); k yy.modpow(r2,p); FileWriter("key"+ID))); PrintWriter pr new PrintWriter(new BufferedWriter(new pr.println(k); pr.close(); System.out.println("key" + ID + " " +k); br1.close(); c3t1 tb new c3t1(); tb.start(); for(int i 0; i < 100000000; ++i){ int myport tb.getport(); pw.println(i); pw.println(hostname.gethostaddress()); pw.println(myport); pw.println(z); pw.flush(); catch(exception e){ System.out.println(e);
class c3t1 extends Thread{ int port; public int getport(){ return(port); public void run(){ try{ port 0; ServerSocket ss new ServerSocket(port); port ss.getlocalport(); while(true){ Socket s ss.accept(); System.out.println("accept: " + s); BigInteger x new BigInteger("0"); BigInteger p new BigInteger("0"); BufferedReader br new BufferedReader(new FileReader("userdata")); String line; line br.readline(); line br.readline(); x new BigInteger(line); line br.readline(); line br.readline(); line br.readline(); p new BigInteger(line); br.close();
OutputStream os s.getoutputstream(); PrintWriter pw new PrintWriter(os); InputStream is s.getinputstream(); InputStreamReader isr new InputStreamReader(is); BufferedReader d new BufferedReader(isr); BigInteger b new BigInteger("0"); BigInteger k new BigInteger("0"); BigInteger y new BigInteger("0"); String ID d.readline(); String c d.readline(); b new BigInteger(c); k b.modpow(x,p); FileWriter("key"+ID))); PrintWriter pr new PrintWriter(new BufferedWriter(new pr.println(k); pr.close(); System.out.println("key" + ID + " " +k); s.close(); catch(exception e){ System.out.println(e);
client4.java import java.io.*; import java.net.*; import java.lang.*; import java.math.*; import java.util.random; import cryptix.provider.key.rawsecretkey; import cryptix.util.core.hex; import xjava.security.*; public class client4{ public static void main(string args[]){ BigInteger I new BigInteger("0"); c4t1 tb new c4t1(); tb.setdaemon(true); tb.start(); for(int i 0; i < 100000000; ++i){ int myport tb.getport(); try{ BufferedReader br new BufferedReader(new FileReader("userdata")); String line; line br.readline(); I new BigInteger(line); br.close(); catch(exception e){
try{ BufferedReader keyin new BufferedReader(new InputStreamReader(System.in)); String a "Online!"; String host args[0]; int port Integer.parseInt(args[1]); int ID2 Integer.parseInt(args[2]); byte k0[],k1[],k2[], k3[]; k1 new byte[8]; BigInteger kint new BigInteger("0"); BufferedReader br2 new BufferedReader(new FileReader("key" + ID2)); String line2; line2 br2.readline(); kint new BigInteger(line2); br2.close(); Socket s new Socket(host, port); OutputStream os s.getoutputstream(); PrintWriter pw new PrintWriter(os); InetAddress hostname InetAddress.getLocalHost(); k0 kint.tobytearray(); for(int i 0; i < 8; ++i){ k1[i] k0[i];
Cipher alg Cipher.getInstance("DES/ECB/PKCS#7", "Cryptix"); RawSecretKey key new RawSecretKey("DES", k1); alg.initencrypt(key); k2 alg.crypt(a.getbytes()); pw.println(i); pw.println(id2); pw.println(hostname.gethostaddress()); pw.println(myport); pw.println(hex.tostring(k2)); pw.flush(); s.close(); while(!a.equals("quit") ){ a keyin.readline(); s new Socket(host, port); os s.getoutputstream(); pw new PrintWriter(os); hostname InetAddress.getLocalHost(); kint new BigInteger("0"); br2 new BufferedReader(new FileReader("key" + ID2)); line2 br2.readline(); kint new BigInteger(line2); br2.close(); k0 kint.tobytearray();
for(int i 0; i < 8; ++i){ k1[i] k0[i]; alg Cipher.getInstance("DES/ECB/PKCS#7", "Cryptix"); key new RawSecretKey("DES", k1); alg.initencrypt(key); k2 alg.crypt(a.getbytes()); pw.println(i); pw.println(id2); pw.println(hostname.gethostaddress()); pw.println(myport); pw.println(hex.tostring(k2)); pw.flush(); System.out.println(I + ":" + a); s.close(); catch(exception e){ class c4t1 extends Thread{ int port; public int getport(){ return(port); public void run(){ try{ port 0;
ServerSocket ss new ServerSocket(port); port ss.getlocalport(); while(true){ Socket s ss.accept(); InputStream is s.getinputstream(); InputStreamReader isr new InputStreamReader(is); BufferedReader d new BufferedReader(isr); String ID d.readline(); String c d.readline(); BigInteger kint new BigInteger("0"); BufferedReader br2 new BufferedReader(new FileReader("key" + ID)); String line2; line2 br2.readline(); kint new BigInteger(line2); br2.close(); byte k0[] kint.tobytearray(); byte k1[] new byte[8]; for(int i 0; i < 8; ++i){ k1[i] k0[i]; byte k2[], k3[]; "Cryptix"); Cipher alg Cipher.getInstance("DES/ECB/PKCS#7", RawSecretKey key new RawSecretKey("DES", k1); k3 Hex.fromString(c); alg.initdecrypt(key); k2 alg.crypt(k3);
System.out.println(ID + ":" + new String(k2)); s.close(); catch(exception e){ System.out.println(e); client5.java import java.io.*; import java.net.*; import java.lang.*; import java.math.*; import java.util.random; import cryptix.provider.key.rawsecretkey; import cryptix.util.core.hex; import xjava.security.*; public class client5{ public static void main(string args[]){ BigInteger I new BigInteger("0"); c4t1 tb new c4t1(); tb.setdaemon(true); tb.start(); for(int i 0; i < 100000000; ++i){ int myport tb.getport();
try{ BufferedReader br new BufferedReader(new FileReader("userdata")); String line; line br.readline(); I new BigInteger(line); br.close(); catch(exception e){ try{ BufferedReader keyin new BufferedReader(new InputStreamReader(System.in)); String a "Online!"; String host args[0]; int port Integer.parseInt(args[1]); byte k0[],k1[],k2[], k3[]; k1 new byte[8]; BigInteger kint new BigInteger("0"); BufferedReader br2 new BufferedReader(new FileReader("chatkey")); String line2; line2 br2.readline(); kint new BigInteger(line2); br2.close();
Socket s new Socket(host, port); OutputStream os s.getoutputstream(); PrintWriter pw new PrintWriter(os); InetAddress hostname InetAddress.getLocalHost(); k0 kint.tobytearray(); for(int i 0; i < 8; ++i){ k1[i] k0[i]; Cipher alg Cipher.getInstance("DES/ECB/PKCS#7", "Cryptix"); RawSecretKey key new RawSecretKey("DES", k1); alg.initencrypt(key); k2 alg.crypt(a.getbytes()); pw.println(i); pw.println(hostname.gethostaddress()); pw.println(myport); pw.println(hex.tostring(k2)); pw.flush(); s.close(); while(!a.equals("quit") ){ a keyin.readline(); s new Socket(host, port); os s.getoutputstream(); pw new PrintWriter(os); hostname InetAddress.getLocalHost(); BufferedReader br1
new BufferedReader(new FileReader("mlist")); String II; II br1.readline(); br1.close(); kint new BigInteger("0"); br2 new BufferedReader(new FileReader("chatkey")); line2 br2.readline(); kint new BigInteger(line2); br2.close(); k0 kint.tobytearray(); for(int i 0; i < 8; ++i){ k1[i] k0[i]; alg Cipher.getInstance("DES/ECB/PKCS#7", "Cryptix"); key new RawSecretKey("DES", k1); alg.initencrypt(key); k2 alg.crypt(a.getbytes()); pw.println(i); pw.println(hostname.gethostaddress()); pw.println(myport); pw.println(hex.tostring(k2)); pw.flush(); System.out.println(I + ":" + a); s.close();
catch(exception e){ class c4t1 extends Thread{ int port; public int getport(){ return(port); public void run(){ try{ port 0; ServerSocket ss new ServerSocket(port); port ss.getlocalport(); while(true){ Socket s ss.accept(); InputStream is s.getinputstream(); InputStreamReader isr new InputStreamReader(is); BufferedReader d new BufferedReader(isr); String ID d.readline(); String c d.readline(); BigInteger kint new BigInteger("0"); BufferedReader br2 new BufferedReader(new FileReader("chatkey")); String line2; line2 br2.readline(); kint new BigInteger(line2); br2.close();
byte k0[] kint.tobytearray(); byte k1[] new byte[8]; for(int i 0; i < 8; ++i){ k1[i] k0[i]; byte k2[], k3[]; "Cryptix"); Cipher alg Cipher.getInstance("DES/ECB/PKCS#7", RawSecretKey key new RawSecretKey("DES", k1); k3 Hex.fromString(c); alg.initdecrypt(key); k2 alg.crypt(k3); System.out.println(ID + ":" + new String(k2)); s.close(); catch(exception e){ System.out.println(e);