Merhabalar arkadaşlar, Sitemizi programlama ile ilgilenen bütün arkadaşlarımızın türkçe içerik konusunda çektiği sıkıntılar düşünülerek soru/cevap şeklinde bir etkileşimde bulunabilmesi için kurduk. Umuyoruz hepimiz için güzel bir deneyim olur. Hasscript Ekibi

Sorunuz mu var? Belki de çoktan soruldu..

0
Java da rastgele karakter oluşturma(sayı ve harf)

Açık 1 Cevaplar 17 Gösterim Java
Merhaba ben rastgele bir şifre oluşturmak istiyorum. Büyük küçük harf ve sayılar içeren. Bu konuda yardımcı olabilir misiniz ?

1 cevap

0

Böyle bir şifre oluşturmaya ihtiyacım olmuştu ve aşağıda gibi bir şey yaptım umarım işinize yarar.

 

import java.util.ArrayList;
import java.util.Random;
import java.util.concurrent.ThreadLocalRandom;

public class Sifre {

	public static void main(String[] args) {
		
		String pswrd = "";
		
		ArrayList<String> sayilar = new ArrayList<String>();
		ArrayList<String> kucukHarfler = new ArrayList<String>();
		
		sayilar.add("0"); sayilar.add("1");
		sayilar.add("2"); sayilar.add("3");
		sayilar.add("4"); sayilar.add("5");
		sayilar.add("6"); sayilar.add("7");
		sayilar.add("8"); sayilar.add("9");

		kucukHarfler.add("a"); kucukHarfler.add("b");
		kucukHarfler.add("c"); kucukHarfler.add("d"); 
		kucukHarfler.add("e"); kucukHarfler.add("f"); 
		kucukHarfler.add("g"); kucukHarfler.add("h");
		kucukHarfler.add("i"); kucukHarfler.add("j"); 
		kucukHarfler.add("k"); kucukHarfler.add("l"); 
		kucukHarfler.add("m"); kucukHarfler.add("n");
		kucukHarfler.add("o"); kucukHarfler.add("p"); 
		kucukHarfler.add("q"); kucukHarfler.add("r");
		kucukHarfler.add("s"); kucukHarfler.add("t");
		kucukHarfler.add("u"); kucukHarfler.add("v");
		kucukHarfler.add("w"); kucukHarfler.add("y");
		kucukHarfler.add("z"); kucukHarfler.add("x");
		
		
		
		ArrayList<String> liste = new ArrayList<String>();
		
		//Benim ihtiyacım olan şifre 2 küçük harf, 2 büyük harf, 2 sayi
		// ve diğer ikisi rastgele karakter olan 8 karakterlik bir şifreydi
		//önce for içinde rastgele 3 değer alıp bu değerlere karşılık gelen
		//karakterleri dizinin içine atıyorum

		for (int i = 0; i < 2; i++) {
			int randomKucuk1 = (1 + (int) (Math.random() * 26));	
			int randomBuyuk1 = (1 + (int) (Math.random() * 26));
			int randomSayi1 = (1 + (int) (Math.random() * 10));
			liste.add(kucukHarfler.get(randomKucuk1-1));
			String buyukHarf =kucukHarfler.get(randomBuyuk1-1);
			liste.add(buyukHarf.toUpperCase());
			liste.add(sayilar.get(randomSayi1-1));
			
			//burda randomKucuk1 sayisi rastegele olacağı için, 
			//26 değerlik diziyi 3 parçaya ayırdım ve gelen değerlere
			//göre küçük, büyük harf ya da sayı aldım.
			
			if(randomKucuk1<10){
				int randomKucuk2 = (1 + (int) (Math.random() * 26));
				liste.add(kucukHarfler.get(randomKucuk2-1));
			}
			else if(randomKucuk1<20 && randomKucuk1>=10) {
				int randomBuyuk2 = (1 + (int) (Math.random() * 26));
				String bykHarf =kucukHarfler.get(randomBuyuk2-1);
				liste.add(bykHarf.toUpperCase());
			}
			else {
				int randomSayi2 = (1 + (int) (Math.random() * 10));
				liste.add(sayilar.get(randomSayi2-1));
			}
    // döngü 2 defa döndüğü için toplamda 8 karakter elde ediyoruz
		}

// burda da oluşturduğumuz şifre sabit bir sırayla olmaması için
//üstte ki arraylist i karıştırıyorum.
		for (int i = 8; i >= 1; i--) {

			int deger = (1 + (int) (Math.random() * i));
			pswrd += liste.get(deger - 1);
			liste.remove(deger - 1);

		}
		System.out.println("sifre:"+pswrd);
		
	}

}

 

(212 puan)