AES şifreleme ile ilgili yazılarımda openssl ile oluşturduğumuz anahtarları kullanmıştık. Ancak openssl, windows ile pek kullanılmayan bir araç.

Bu sebeple anahtar oluşturma işlemi için küçük bir method yazmaya karar verdim.

Aşağıdaki method ile AES şifreleme için kullanabileceğimiz bir anahtar oluşturacağız.

public byte[] generateAesKey() throws NoSuchAlgorithmException, NullPointerException {
  KeyGenerator keyGenerator = KeyGenerator.getInstance("AES");
  keyGenerator.init(256); // 128, 192 veya 256 bit anahtar oluşturabilirsiniz.

  SecretKey key = keyGenerator.generateKey();

  return key.getEncoded();
}

Yukarıdaki fonksiyon ile AES anahtarı okuşturabilirsiniz. Hazırladığım örneklerde AES ile CBC şifreleme için kullandığımız IV dizisini uluşturmak için aşağıdaki fonksiyonu kullanabilirsiniz.

public byte[] generateAesIV() throws NoSuchAlgorithmException, NullPointerException {
  SecureRandom random = SecureRandom.getInstance("SHA1PRNG");

  // AES 256 bit (32 byte) anahtar ile kullanmak için 128 bit (16 byte) IV oluşturuyoruz..
  return random.generateSeed(16);
}

Yukarıdaki kodlar Android’e özel değildir. Java programlarınız ile de kullanabilirsiniz. Şifreleme ile ilgili yazıp yayınladığım diğer kodlarda benzer şekilde değişiklik yapmadan veya küçük farklılıklarla Java programlarınızda kullanabileceğiniz kodlardır.

Başka bir yazıda görüşmek üzere…