11 Nisan 2020 Cumartesi

SecretKeyFactory Sınıfı - Verilen Şifreyi SecretKey Nesnesi Haline Getirir

Giriş 
Şu satıları dahil ederiz.
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
Açıklaması şöyle. Simetrik şifrelemede kullanılır.
This class is used for generating secret symmetric keys. In other words, it generates a SecretKey object from the input key specification
Bu Sınıf Neden Lazım?
Bu sınıf metin halindeki şifreyi (plain text)  SecretKey nesnesi haline getirmek için kullanılır.  SecretKey nesnesini üretmenin bir diğer yolu ise KeyGenerator sınıfı kullanmak.

Nasıl Kullanılır?
1.getInstance() metodu ile bir SecretKeyFactory nesnesi elde edilir. Bu metoda kullanılacak algoritma parametre olarak verilir.
2. generateSecret() metodu ile bir SecretKey nesnesi elde edilir.Bu metoda KeySpec parametresi ile şifre geçilir.
3. Üretilen SecretKey nesnesi Cipher nesnesine geçilir. Şöyle yaparız.
String keyValue = "123456789";
KeySpec myKey = new DESKeySpec(keyValue.getBytes("UTF8"));
SecretKey key = SecretKeyFactory.getInstance("DES").generateSecret(myKey);
Cipher cipher = Cipher.getInstance("DES");
cipher.init(Cipher.ENCRYPT_MODE, key);

getInstance metodu
Örnek - DES
Şöyle yaparız.
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
Örnek - PBEWith<Digest>And<Encryption>
Şöyle yaparız.
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("PBEWithMD5AndDES");
Örnek- PBKDF2With<prf>
PBEKeySpec yazısına taşıdım

generateSecret metodu
Bir SecretKey nesnesi döndürür. SecretKey bir arayüzdür. Üretilen SecretKey nesnesi cipher.init() metodu ile cipher nesnesine geçilir.

Örnek - DES
Şöyle yaparız.
DESKeySpec keySpec = new DESKeySpec("Your secret Key phrase".getBytes("UTF8"));
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
SecretKey key = keyFactory.generateSecret(keySpec);
Örnek - PBEWith<Digest>And<encryption>
Açıklaması şöyle
Secret-key factory for use with PKCS5 password-based encryption, where <digest> is a message digest, <prf> is a pseudo-random function, and <encryption> is an encryption algorithm.
Şöyle yaparız. Bu zayıf bir algoritma ve kullanılmamalı
char passwordArray[] = ...;
// setup decryption method
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("PBEWithMD5AndDES");
SecretKey key = keyFactory.generateSecret(new PBEKeySpec(passwordArray));
Örnek - PBEWith<prf>And<encryption>
Örnek ver

Örnek - PBKDF2With<prf>
PBEKeySpec yazısına taşıdım


Hiç yorum yok:

Yorum Gönder