Giriş
Şu satırı dahil ederiz.
Bu sınıf sadece algoritmayı bilir. Algoritmanın modları ve padding'i hakkında bilgisi yoktur. Algoritmanın modu ve padding'i Cipher sınıfını ilgilendirir.
Yani bu sınıf aslında sadece Ciper.init() Mac.init() gibi metodlara daha kolay parametre geçmek içindir.
Bazı kodlarda KeyGenerator ile key ürettiriliyor. Bu kullanım tarzını hiç anlamadım.
KeySpec Arayüzü
KeySpec arayüzü Cipher ilklendirmek için değil key hakkında metadata vermek içindir.
Key Arayüzü
SecretKey arayüzünden kalıtır. SecretKey ise Key arayüzünden kalıtır. Key nesneleri Cipher nesnesini ilklendirmek için gerekir. Açıklaması şöyle
constructor - byte [] + Algoritma
Örnek
Şöyle yaparız.
Şöyle yaparız.
Şöyle yaparız.
Şu satırı dahil ederiz.
import javax.crypto.spec.SecretKeySpec;
Bu sınıf hem KeySpec hem de Key arayüzlerini gerçekleştirir.Bu sınıf sadece algoritmayı bilir. Algoritmanın modları ve padding'i hakkında bilgisi yoktur. Algoritmanın modu ve padding'i Cipher sınıfını ilgilendirir.
Yani bu sınıf aslında sadece Ciper.init() Mac.init() gibi metodlara daha kolay parametre geçmek içindir.
Bazı kodlarda KeyGenerator ile key ürettiriliyor. Bu kullanım tarzını hiç anlamadım.
KeySpec Arayüzü
KeySpec arayüzü Cipher ilklendirmek için değil key hakkında metadata vermek içindir.
Key Arayüzü
SecretKey arayüzünden kalıtır. SecretKey ise Key arayüzünden kalıtır. Key nesneleri Cipher nesnesini ilklendirmek için gerekir. Açıklaması şöyle
This class specifies a secret key in a provider-independent fashion.Bu sınıf Cipher nesnesini ilklendirmek için kullanılır. Şöyle yaparız.
It can be used to construct a SecretKey from a byte array, without having to go through a (provider-based) SecretKeyFactory.
Key key = new SecretKeySpec(..., "...");
Cipher encryptCipher = Cipher.getInstance("...");
encryptCipher.init (Cipher.ENCRYPT_MODE, key);
Bu sınıfı direkt kullanmak veya SecretKeyFactory ile yaratmak arasında güvenlik açısından fark olup olmadığını bilmiyorum.constructor - byte [] + Algoritma
Örnek
Şöyle yaparız.
String strDefaultKey = "...";
byte [] bytes = strDefaultKey.getBytes ("UTF-8");
SecretKeySpec keySpec = new SecretKeySpec (bytes, "AES");
ÖrnekŞöyle yaparız.
String strDefaultKey = "...";
byte [] bytes = strDefaultKey.getBytes ("UTF-8");
Key keySpec = new SecretKeySpec (bytes, "DES");
ÖrnekŞöyle yaparız.
String HMAC_SHA1_ALGORITHM = "HmacSHA1";
String key = ...;
SecretKeySpec keySpec = new SecretKeySpec(key.getBytes(), HMAC_SHA1_ALGORITHM);
Hiç yorum yok:
Yorum Gönder