Java

Java-Şifreleme Yöntemi-MD5

Merhaba arkadaşlar. Bu yazıda MD5 ile Java’da şifreleme işleminin nasıl yapıldığını göreceğiz.

Aslında bu işlemi JSF’de aktivasyon maili gönderme ile ilgili yazının içinde anlatmayı planlıyordum ancak şifreleme işlemi Java’ya bağlı olduğu için bunu ayrı bir yazı ile anlatacağım ve buradaki yöntemi aktivasyon maili yazısında kullanacağım. Eğer bir vakit imkan bulabilirsem SHA-256 şifrelemesini burada bir örnekle yayınlayacağım inşaAllah. Şimdi örnek uygulamamızı inceleyelim. Açıklamasını  kodumuzun altında adım adım verdim arkadaşlar.

  • Şifrelenecek parola için kod5.org atamasını yapıyoruz.
  • MessageDigest messageDigestNesnesi = MessageDigest.getInstance(“MD5”); ifadesi ile kullanacağımız şifreleme yönteminin MD5 olduğunu bildiriyoruz.
  • messageDigestNesnesi.update(parola.getBytes()); ifadesi ile parola’yı bitlere dönüştürüp messageDigestNesnesi‘ne veriyoruz.
  • byte messageDigestDizisi[] = messageDigestNesnesi.digest(); ifadesi ile MD5 sonucunu yeni bitler halinde alıyoruz.
  • StringBuffer sb = new StringBuffer(); ifadesi ile şifrelenmiş veriyi tutacak nesneyi oluşturuyoruz.
  • Döngü içinde elimizde decimal olarak var olan messageDigestDizisi‘ni 16’lık tabana çeviriyoruz. Dönen bu Integer veriyi Integer.toString() ile string’e çeviriyoruz, ardından  substring(1) ile string’in ilk rakam ya da harfini atıyoruz ve geri kalanını append ile sürekli sb nesnesinin sonuna ekliyoruz. String’in ilk harf ya da rakamını atmamızın nedeni 16 tabanında işlem yaparsak dönen 3 haneli verilerin hep 1 ile başlıyor olmasıdır. Eğer 16 yerine 32 kullanırsanız substring(1) kullanmanıza gerek kalmaz.
  • Son olarak da Şifrelenmiş veriyi ekrana basıyoruz.

Ekran Çıktısı

Çıktıda göreceğiniz gibi 32 tabanında işlem yapıldığında substring(1) kullanmadığımız halde 16 tabanındaki ile sonuç aynı uzunlukta sonuç elde ettik.

16 ve 32'lik tabanlarda şifreleme işleminin sonuçları.

16 ve 32’lik tabanlarda şifreleme işleminin sonuçları.

 

 

 

 

 

 

 

 

 

 

Şifreleme işleminin en temel hali bu şekilde arkadaşlar. Yazılarımı iyileştirebilmem için eleştiri ve düşüncelerinizi yazının altındaki yorum kısmına yazmanızı rica ediyorum. Sağlıcakla kalın.

  • cafercan

    MD5 ile şifreledik “Ekran Çıktısı” başlığı altında dediğiniz gibi bir çıktı aldık. Tekrar parola değişkenindeki ilk veriyi nasıl elde edebiliriz?

    • Merhabalar.
      Eğer kullanıcının girdiği şifreyi geri elde etmeyi (örneğin 12345) soruyorsanız, MD5 ve SHA-256’da bunun bir yolu yoktur. Teorik olarak bu iki şifreleme yöntemi ile şifrelenen veri geri orjinal haline döndürülemez.
      SAYGILARIMLA

      • cafercan

        Teşekkürler. 🙂

  • Coder ACJHP

    Elinize sağlık, güzel ve basit bir yöntem fakat bu şifreyi geri çözme olayı nasıl olacak?
    Mesela bu yöntemi kullanarak herhangi bir bilgiyi şifreledim ve veri tabanına yükledim sonradan kullanabilmek için nasıl geri çözeceğim?
    Bilgilendirme için şimdiden teşekkürler.