Örnek

Bir String'i MessageDigest İle Hashleyen Örnek

Aşağıdaki sınıf verilen bir ifadeyi message digest (hash) işleminden geçirmekte, Hex tipinde String olarak geri döndürmektedir:
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class PasswordManager {

	public static String digest(String password) throws NoSuchAlgorithmException {

		MessageDigest md = MessageDigest.getInstance("MD5");
		md.update(password.getBytes());
		byte[] hash = md.digest();

		StringBuilder sb = new StringBuilder(hash.length * 2);
		for (byte b : hash) {
			sb.append(String.format("%02x", b & 0xff));
		}
		return sb.toString();
	}
	
	public static void main(String[] args) 
			throws NoSuchAlgorithmException {
		String hashed=PasswordManager.digest("fibiler12x");
		System.out.println("hashed:"+hashed);	
	}
}
Yukarıdaki kod bir şifrenin Hex karşılığını bulmak için kullanılabilir. Bir kullanıcı şifre girdiğinde, girilen şifre de aynı fonksiyondan geçirilir ve daha önce hahslenen değerler aynı olup olmadığı kontrol edilebilir.
Aynı örnek aşağıdaki gibi farklı bir şekilde de yapılabilir:
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class PasswordManager {
	public static String digest(String password) throws NoSuchAlgorithmException {
		MessageDigest md = MessageDigest.getInstance("MD5");
		md.update(password.getBytes());
		byte[] hash = md.digest();
		StringBuffer hexString = new StringBuffer();
		for (int i = 0; i < hash.length; i++) {
			if ((0xff & hash[i]) < 0x10) {
				hexString.append("0" + Integer.toHexString((0xFF & hash[i])));
			} else {
				hexString.append(Integer.toHexString(0xFF & hash[i]));
			}
		}
		return hexString.toString();
	}
	
	public static void main(String[] args) 
			throws NoSuchAlgorithmException {
		String hex=PasswordManager.digest("abc!12x!");
		System.out.println("hex:"+hex);
	}
}
Bu örnekte sadece byte dizisinden Hex oluşturma kodu değişmiştir.
zafer.teker , 13.03.2016

Bu Sayfayı Paylaş:

Fibiler Üyelerinin Yorumları


Tüm üyeler içeriklere yorum ekleyerek katkıda bulunabilir : Yorum Gir

Misafir Yorumları




Bu Sayfayı Paylaş:

İletişim Bilgileri

Takip Et

Her Hakkı Saklıdır. Bu sitede yayınlanan tüm bilgi ve fikirlerin kullanımından fibiler.com sorumlu değildir. Bu sitede üretilmiş , derlenmiş içerikleri, fibiler.com'u kaynak göstermek koşuluyla kendi sitenizde kullanılabilirsiniz. Ancak telif hakkı olan içeriklerin hakları sahiplerine aittir