Cevap Geçmişi
«« Soruya geri dön
22.12.18 22:37
Uzun zamandır Java ile işimiz olmuyor ama bir zamanlar şöyle bir şey kullanmıştık. Söylediğini karşılıyor. import java.security.SecureRandom; public class SifreUret { private SecureRandom random; private String sifre; private String ALPHA_CAPS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; private String ALPHA = "abcdefghijklmnopqrstuvwxyz"; private String NUMERIC = "0123456789"; private String karakterleriSec(int len, String dic) { String result = ""; for (int i = 0; i < len; i++) { int index = random.nextInt(dic.length()); result += dic.charAt(index); } return result; } private String shuffle(String s) { char c; StringBuffer result = new StringBuffer(s); int n = result.length(); while ( n > 1 ) { int pos1 = random.nextInt(n); int pos2 = random.nextInt(n); c = result.charAt(pos1); result.setCharAt(pos1, result.charAt(pos2)); result.setCharAt(pos2, c); n--; } return result.toString(); } public String getSifre() { return sifre; } public Boolean kontrol(String kSifre) { int i; Boolean alphaCapsVar = false; Boolean alphaVar = false; Boolean numericVar = false; for (i=0; i < kSifre.length(); i++) if (ALPHA_CAPS.indexOf(kSifre.charAt(i)) == -1) { alphaCapsVar = true; break; } for (i=0; i < kSifre.length(); i++) if (ALPHA.indexOf(kSifre.charAt(i)) == -1) { alphaVar = true; break; } for (i=0; i < kSifre.length(); i++) if (NUMERIC.indexOf(kSifre.charAt(i)) == -1) { numericVar = true; break; } return alphaCapsVar && alphaVar && numericVar; } SifreUret() { } SifreUret(int karakterSayisi) { random = new SecureRandom(); sifre = ""; sifre += karakterleriSec(random.nextInt(karakterSayisi / 3) + 1, ALPHA_CAPS); sifre += karakterleriSec(random.nextInt(karakterSayisi / 3) + 1, ALPHA); sifre += karakterleriSec(karakterSayisi - sifre.length(), NUMERIC); sifre = shuffle(sifre); } }
Kullanımı: Şifre üretmek için... String sifre = new SifreUret(10).getSifre();
Şifreyi test etmek için... Boolean gecerliMi = new SifreUret().kontrol(sifre);
Ekleyen: cevapsitesi
Değiştiren: cevapsitesi
22.12.18 19:15
Uzun zamandır Java ile işimiz olmuyor ama bir zamanlar şöyle bir şey kullanmıştık. Söylediğini karşılıyor. import java.security.SecureRandom; public class SifreUret { private SecureRandom random; private String sifre; private String ALPHA_CAPS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; private String ALPHA = "abcdefghijklmnopqrstuvwxyz"; private String NUMERIC = "0123456789"; private String karakterleriSec(int len, String dic) { String result = ""; for (int i = 0; i < len; i++) { int index = random.nextInt(dic.length()); result += dic.charAt(index); } return result; } private String shuffle(String s) { char c; StringBuffer result = new StringBuffer(s); int n = result.length(); while ( n > 1 ) { int pos1 = random.nextInt(n); int pos2 = random.nextInt(n); c = result.charAt(pos1); result.setCharAt(pos1, result.charAt(pos2)); result.setCharAt(pos2, c); n--; } return result.toString(); } public String getSifre() { return sifre; } SifreUret(int karakterSayisi) { random = new SecureRandom(); sifre = ""; sifre += karakterleriSec(random.nextInt(karakterSayisi / 3) + 1, ALPHA_CAPS); sifre += karakterleriSec(random.nextInt(karakterSayisi / 3) + 1, ALPHA); sifre += karakterleriSec(karakterSayisi - sifre.length(), NUMERIC); sifre = shuffle(sifre); } } Bu da kullanım örneği: String sifre = new SifreUret(10).getSifre();
Ekleyen: cevapsitesi
En fazla 3 eski durum gösterilir.