Projects using Java and RMI
See your online JDK documentation for an RMI tutorial and examples.
RMI and SSL
There is interest here in using RMI via SSL for encrypted and
authenticated connections. At the moment, that seems like too
big of a project to write ourselves. Commercial Java/SSL
implementations are available; see the
RMI and SSL info on the
Java Distributed Systems home page. It may also be possible
to implement a JNI interface to the
SSLeay C code.
Java and MD5
In the meantime, a project using simple username/password
authentication is in progress. Rather than use the Unix
crypt()
method to encrypt passwords, we will use
md5 digests, since
md5 is less susceptible to cracking and allows long
password lengths. The Apache web servers here, as well as the
htpasswd
command, have already been modified to use md5.
Related source files are available.
I was considering using the Java implementation of md5 from
cryptix.
This cryptix demo shows that
JDK 1.1.6 already includes an md5 implementation, so we will just
use that instead of cryptix.
This is an example of using a randomly
generated RSA key for encrypted authentication of a
username/password.
rmiregistry port
Projects using RMI here must run their own rmiregistry
server, and to avoid conficts should use a port number different
from the default of 1099.
Examples of an RMI server, client, and applet which use an
alternate rmiregistry port are
available.
A second example illustrates the use of
java.rmi.registry.LocateRegistry to create and export a registry on the local host,
which avoids the need to run a separate rmiregistry process.
A third example implements distributed
processing using three machines.
Srinivas Jujjuru is currently working on
a Java/RMI project and
has more information about it on his web pages.