5.00 / 1 oy

Java ile rastgele güvenli parola üretmek

10 gün kadar önce Java'da kullanıcının istediği kadar basamaktan oluşan bir şifre üretme algoritması geliştirerek Java ile rasgele parola üretmek örneğini paylaşmıştım. Ama gerçek hayatta güvenli bir parola kullanmamız gerektiği için algoritmamızı bir aşama ileri götürerek aşağıdaki güvenli parola şartlarını sağlayan bir parola üretmesini sağlayalım.

İnternette çok sayıda parola üretimi ile ilgili package var. Ama bizim amacımız parola üretmek değil, basit bir güvenli parola üretme algoritması geliştirmek olduğu için bu paketleri kullanmak yerşne kendi algoritmamızı geliştireceğiz. Güvenli parolamız için:

- Büyük harf karakterleri, küçük harf karakterleri, sayısal karakterler ve özel karakterleri kullanarak 20 basamaklı bir şifre üretelim.

Not: Düşük bir olasılık ile olsa da üretilecek şifrenin hiç özel karakter ya da sayısal karakter üretmemesi mümkün. Bu yüzden bir ileri aşamada gözcü kontroller eklenebilir.

Güvenli parola üretme algoritma kodları:

char[] karakterlerBuyuk = { 'A', 'B', 'C', 'D',
        'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q',
        'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' }; //26
char[] karakterlerKucuk = { 'a', 'b', 'c', 'd',
        'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q',
        'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' }; //26

char[] karakterlerSayisal = { '0', '1', '2', '3', '4',
        '5', '6', '7', '8', '9' }; //10

char[] karakterlerOzel = { '~', '!', '@', '#',
        '$', '%', '^', '&', '*', '(', ')', '-', '_', '=', '+', '[', '{',
        ']', '}', '\\', '|', ';', ':', '\'', '"', ',', '<', '.', '>', '/',
        '?' }; //30

StringBuilder sb=new StringBuilder();
for (int i=0; i<20; i++)
{
  int rasgele = new Random().nextInt(4); //0 ile 3 arası
  if (rasgele==0)
  {
	  int rasgeleKarakter=new Random().nextInt(26);
	  sb.append(karakterlerBuyuk[rasgeleKarakter]);
  }
  else if (rasgele==1)
  {
	  int rasgeleKarakter=new Random().nextInt(26);
	  sb.append(karakterlerKucuk[rasgeleKarakter]);
  }
  else if (rasgele==2)
  {
	  int rasgeleKarakter=new Random().nextInt(10);
	  sb.append(karakterlerSayisal[rasgeleKarakter]);
  }
  else if (rasgele==3)
  {
	  int rasgeleKarakter=new Random().nextInt(30);
	  sb.append(karakterlerOzel[rasgeleKarakter]);
  }
}
System.out.println("Şifreniz: "+sb.toString());

 

Çıktı:

Şifreniz: 5670OM5I#*DYd@c3@k8h

utku33

03.03.2020 03:12

Bu soru 1 kez yanıtlandı.

Bu soruya sadece kayıtlı kullanıcılar yanıt yazabilirler. Yanıt yazmak için lütfen giriş yapınız.

Reitix
Java ile rastgele güvenli parola üretmek

İnternet sitemizdeki deneyiminizi iyileştirmek için çerezler kullanıyoruz. Bu siteye giriş yaparak çerez kullanımını kabul etmiş sayılıyorsunuz. Daha fazla bilgi.