Giriş
Şu satırı dahil ederiz.
getInstance metodu
DES
Şöyle yaparız.
Şöyle yaparız.
AES yazısına taşıdım.
RSA
Şöyle yaparız
SecretKey ile şöyle elde etmek için şöyle yaparız.
Key nesnesi alır. Simetrik şifreleme için Key arayüzünden kalıtan SecretKey nesnesi kullanılır.
Örnek
Şöyle yaparız.
Asimetrik şifreleme için Key arayüzünden kalıtan PublicKey nesnesi kullanılır. Şöyle yaparız.
Key + AlgorithmParameters nesnesi alır.
Örnek
Şöyle yaparız.
Key nesnesi alır.
Örnek
Şifreyi açmak için şöyle yaparız.
Key + AlgorithmParameters nesnesi alır.
Örnek
İstenirse salt verilebilir.
Açma için şöyle yaparız.
Şu satırı dahil ederiz.
import javax.crypto.Cipher;
Kullanım
1. getInstance() metodu ile istenilen algoritmaı gerçekleştiren Cipher nesnesi elde edilir
2. Simetrik şifreleme için SecretKey ile başlatılır. Şöyle yaparız
KeyGenerator keyGenerator = KeyGenerator.getInstance("AES");
keyGenerator.init(new SecureRandom());
SecretKey secretKey = keyGenerator.generateKey();
// Initialize the Cipher for Encryption
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.ENCRYPT_MODE, secretKey);
Şifreleme için doFinal metod çağrılır. Şöyle yaparız
String str = ...;
byte[] encryptedData = cipher.doFinal(str.getBytes());
Açma için şöyle yaparız
SecretKey secretKey = ...;
byte[] encryptedData = ...;
cipher.init(Cipher.DECRYPT_MODE, secretKey);
byte[] decryptedData = cipher.doFinal(encryptedData);
DES
Şöyle yaparız.
Cipher desCipher = Cipher.getInstance("DES");
Şöyle yaparızCipher pbeCipher = Cipher.getInstance("PBEWithMD5AndDES");
3DESŞöyle yaparız.
Cipher cipher = Cipher.getInstance("PBEWithSHA1AndDESede");
AESAES yazısına taşıdım.
RSA
Şöyle yaparız
Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");
Şöyle yaparız.Cipher cipher = Cipher.getInstance("RSA/ECB/OAEPWithSHA1AndMGF1Padding");
SecretKeySecretKey ile şöyle elde etmek için şöyle yaparız.
SecretKey key = ...;
Cipher cipher = Cipher.getInstance(key.getAlgorithm());
init metodu - encryptKey nesnesi alır. Simetrik şifreleme için Key arayüzünden kalıtan SecretKey nesnesi kullanılır.
Örnek
Şöyle yaparız.
SecretKey key = ...;
cipher.init(Cipher.ENCRYPT_MODE, key);
ÖrnekAsimetrik şifreleme için Key arayüzünden kalıtan PublicKey nesnesi kullanılır. Şöyle yaparız.
RSAPublicKey eServer = (RSAPublicKey) cert.getPublicKey();
cipher.init(Cipher.ENCRYPT_MODE, eServer);
init metodu - encryptKey + AlgorithmParameters nesnesi alır.
Örnek
Şöyle yaparız.
SecretKey secretKey = ...
PBEParameterSpec pbeParameterSpec = ...
cipher.init(Cipher.ENCRYPT_MODE, secretKey, pbeParameterSpec);
init metodu - decryptKey nesnesi alır.
Örnek
Şifreyi açmak için şöyle yaparız.
SecretKey myDesKey = ...;
cipher.init(Cipher.DECRYPT_MODE, myDesKey);
x.509 sertifikası için şöyle yapabiliriz.PrivateKey key = ...;
cipher.init(Cipher.DECRYPT_MODE, key);
init metodu - decryptKey + AlgorithmParameters nesnesi alır.
Örnek
İstenirse salt verilebilir.
byte[] salt = ...;
cipher.init(Cipher.DECRYPT_MODE, key, new PBEParameterSpec(salt, 20));
Örnek
Salt şöyle de verilebilir.
AES ile spec kullanılıyor.
init metodu ile nesnenin nasıl ilklendirildiğine bağlı olarak belirtilen byte'ları şifreler veya açar. Şifrelemek için şöyle yaparız.Salt şöyle de verilebilir.
byte[] salt = {...};
int iterationCount = 2;
AlgorithmParameterSpec paramSpec = new PBEParameterSpec(salt, iterationCount);
cipher.init(Cipher.DECRYPT_MODE, key, paramSpec);
ÖrnekAES ile spec kullanılıyor.
IvParameterSpec ivspec = ...;
SecretKeySpec keyspec = ...;
Cipher cipher = ...;
cipher.init(Cipher.ENCRYPT_MODE, keyspec, ivspec);
doFinal metodu - encrypt
byte[] text = ...;
byte[] textEncrypted = desCipher.doFinal(text);
doFinal metodu - decryptAçma için şöyle yaparız.
byte[] textEncrypted = ...;
byte[] textDecrypted = desCipher.doFinal(textEncrypted);
Hiç yorum yok:
Yorum Gönder