Du bist nicht angemeldet.

Localhost

Ehemaliger Supporter

  • »Localhost« ist der Autor dieses Themas

Beiträge: 345

Wohnort: 127.0.0.1

  • Private Nachricht senden

1

04.06.2012, 20:02

Personalausweisnummer prüfen

Dieses Snippet prüft einen String (Personalausweisnummer) auf Richtigkeit.

Java-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
	public static boolean checkPattern(String aPattern, String aCode) {
		return aCode.matches(aPattern);
	}
		
	public static boolean checkID(String aID) {
		if (!checkPattern("[\\d]{10}[<]{1}[\\d]{7}[<]{1}[\\d]{7}[<]{1}[\\d]{1}", aID))
			return false;
		
		String[] subs = aID.split("<");
		int[] wgt = { 7, 3, 1 };
		int tmp = 0, com = 0, pos = 0;

		for (int a = 0; a < subs.length - 1; a++, tmp = 0) {
			for (int i = 0; i < subs[a].length() - 1; i++) {
			  	tmp += ((subs[a].charAt(i) - 48) * wgt[i % 3]) % 10;
			  	com += ((subs[a].charAt(i) - 48) * wgt[pos++ % 3]) % 10;	
			}
			 
			if (tmp % 10 != subs[a].charAt(subs[a].length() - 1) - 48)
				return false;	
				com += ((tmp % 10) * wgt[pos++ % 3]) % 10;
		}

		if (com % 10 != subs[subs.length - 1].charAt(subs[subs.length - 1].length() - 1) - 48)
			return false;
			  
		return true;
	}


Gibt true zurück wenn der String korrekt ist, ansonsten false.
Funktioniert nicht mit dem neuen Personalausweis; Format des Strings aID: String1<String2<String3<String4.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Localhost« (04.06.2012, 20:09)


2

05.06.2012, 02:10

Überprüft der auch die Checksum?
Wäre sinnvol, sonst kann man die Nummer Faken.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Blizzard« (19.02.2013, 12:32)