Membaca Image dari File, InputStream, atau URL dalam Java

| More
Dengan menggunakan package javax.imageio kita dapaty dengan mudah membaca image dari berbagai sumber. Contoh implementasinya adalah sebagai berikut :
Image image = null;
try {
// Membaca dari file
File file = new File("Kabuto.png");
image = ImageIO.read(file);

// Membaca dari input stream
InputStream is = new BufferedInputStream(
new FileInputStream("Kabuto.png"));
image = ImageIO.read(is);

// Membaca dari URL
URL url = new URL("http://s.itb.ac.id/~neutron0690/Kabuto.png");
image = ImageIO.read(url);
} catch (IOException e) {
}

// Lalu gunakan label untuk menampilkan image
JFrame frame = new JFrame();
JLabel label = new JLabel(new ImageIcon(image));
frame.getContentPane().add(label, BorderLayout.CENTER);
frame.pack();
frame.setVisible(true);
Dengan pembacaan image menggunakan javax.imageio maka data image akan disimpan dalam variabel image. Setelah itu bisa ditampilkan ke beberapa kontrol dalam Java.

Enkripsi MD5 dalam Java

| More
Secara luas dengan hash value 128-bit. MD5 di desain oleh Ronald Rivest pada tahun 1991 untuk menggantikan hash function sebelumnya, MD4. Walaupun pada tahun 1996 ditemukan kecacatan pada metode ini, namun penggunaan metode ini dalam enkripsi data masih umum digunakan. Beberapa aplikasi database (MySQL, PostgreSQL, dll) masih menyediakan metode ini. Bahkan untuk beberapa aplikasi CMS menggunakan metode ini untuk menyimpan password login (contoh: Moodle). Enkripsi MD5 memang irreversible namun penggunaannya adalah dengan membandingkan data yang tersimpan (sudah terenkripsi) dengan hasil enkripsi data yang akan dibandingkan. Sehingga pengujian dapat dilakukan tanpa harus mengembalikan (dekrip) data.

Dalam implementasi di bahasa Java, sudah tersedia library untuk itu sehingga mempermudah dalam menggunakan metode itu:
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class SimpleMD5 {

private static String convertToHex(byte[] data) {
StringBuffer buf = new StringBuffer();
for (int i = 0; i < data.length; i++) {
int halfbyte = (data[i] >>> 4) & 0x0F;
int two_halfs = 0;
do {
if ((0 <= halfbyte) && (halfbyte <= 9))
buf.append((char) ('0' + halfbyte));
else
buf.append((char) ('a' + (halfbyte - 10)));

halfbyte = data[i] & 0x0F;
} while(two_halfs++ < 1);
}
return buf.toString();
}

public static String MD5(String text)
throws NoSuchAlgorithmException, UnsupportedEncodingException {
MessageDigest md;
md = MessageDigest.getInstance("MD5");
byte[] md5hash = new byte[32];
md.update(text.getBytes("iso-8859-1"), 0, text.length());
md5hash = md.digest();
return convertToHex(md5hash);
}
}

Contoh penggunaan :
String encrypted = SimpleMD5.MD5(“HMFT”);

Maka akan didapatkan nilai : e747769f238ccfc30717c7c95b3c05d9

Mendapatkan Hostname, IP Address, Mac Address dengan Java

| More
Kode berikut membuat kelas NetworkInfo dengan 3 fungsi statis, yaitu hostName, ipAddress, dan macAddress. Ketiga variabel tersebut dapat digunakan untuk mendapatkan Hostname, IP Address, dan Mac Address.

import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.net.UnknownHostException;

/**
*
* @author Neutron0690
*/
public final class NetworkInfo {
public final static String ipAddress(){
try {
InetAddress addr = InetAddress.getLocalHost();

// Get IP Address
byte[] ipAddr = addr.getAddress();

// Convert to dot representation
String ipAddrStr = "";
for (int i=0; iif (i > 0) {
ipAddrStr += ".";
}
ipAddrStr += ipAddr[i]&0xFF;
}

return ipAddrStr;
} catch (UnknownHostException e) {
return "";
}
}

public final static String hostName(){
try {
InetAddress addr = InetAddress.getLocalHost();

// Get hostname
String hostname = addr.getHostName();

return hostname;
} catch (UnknownHostException e) {
return "";
}
}

public final static String macAddress(){
try {
InetAddress address = InetAddress.getLocalHost();

/*
* Get NetworkInterface for the current host and then read the
* hardware address.
*/
NetworkInterface ni = NetworkInterface.getByInetAddress(address);
byte[] mac = ni.getHardwareAddress();

/*
* Extract each array of mac address and convert it to hexa with the
* following format 08-00-27-DC-4A-9E.
*/
String tmp = "";
for (int i = 0; i < tmp =" tmp" class="character">"%02X%s", mac[i], (i < class="character">"-" : "");
}

return tmp;
} catch (UnknownHostException e) {
e.printStackTrace();
return "";
} catch (SocketException e) {
e.printStackTrace();
return "";
}
}
}


Contoh cara pemanggilannya dapat secara langsung karena bersifat statis:
System.out.println(" Hostname = " + NetworkInfo.hostName());
System.out.println(" IPAddress = " + NetworkInfo.ipAddress());
System.out.println(" MacAddress = " + NetworkInfo.macAddress());

top