User since
2003-08-15
2653
Artikel
BenutzerIn
kennt jemand vielleicht ein Modul, eine Software oder einen Code-Snipsel mit dem man die Personalausweisnummer auf Gültigkeit überprüfen kann? Die Lösung sollte Fehlercodes als Rückgabewert liefern und mit Perl kompatibel sein.
habe leider bisher nur einen kurzen Text auf
http://www.sylence.net/perso/ gefunden.
User since
2003-08-15
2653
Artikel
BenutzerIn
edit: es gibt zwar einen Perl-Code bei der o.g. Adresse aber leider berechnet der Code nur die Angaben. Er liefert kein Wahr oder Falsch\n\n
<!--EDIT|Froschpopo|1067486446-->
User since
2003-08-04
2536
Artikel
ModeratorIn
der obige code von sylence macht aber die prüfziffer-analyse einigermaßen überflüssig, da damit jeder sich wunderhübsch und schnell eine gültige nummer generieren kann....
User since
2003-08-04
7321
Artikel
ModeratorIn
hab das mal vor längerem gecoded:
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
29
sub IdentityCardOkay
{
my $num = shift;
my($auth, $idx, $csum1, $lang, $bdate, $csum2, $cdate, $csum3, $csum4) = $num =~ /(\d{4})(\d{5})(\d)(\w)<+(\d{6})(\d)<+(\d{6})(\d)<+(\d)/;
croak 'No german identity card!' unless lc($lang) eq "d";
return (CheckSum("$auth$idx") == $csum1 and
CheckSum($bdate) == $csum2 and
CheckSum($cdate) == $csum3 and
CheckSum("$auth$idx$csum1$bdate$csum2$cdate$csum3") == $csum4);
}
sub CheckSum
{
my $num = shift;
my $len = length($num);
my ($n7, $n3, $n1) = (0, 0, 0);
for(my $i = 0; $i < $len; $i += 3)
{
$n7 += substr($num, $i, 1);
$n3 += substr($num, $i+1, 1);
$n1 += substr($num, $i+2, 1);
}
return ($n7*7 + $n3*3 + $n1) % 10;
}
User since
2003-08-04
7321
Artikel
ModeratorIn
was du noch prüfen solltest:
- ist $bdate und $cdate valid (also in einem validen range)
- ist er alt genug...
aber wie gesagt, brigt alles nix: gute alternative; der user soll persoausweiß kopieren (am besten noch beglaubigt) und an dich schicken...
User since
2003-08-04
7321
Artikel
ModeratorIn
PS: der spam von trytoflirt.de nervt manchmal...
würde auch user und password nicht einfach via email verschicken...
User since
2003-08-08
2561
Artikel
HausmeisterIn
http://www.coder-world.de/cgi-bin/x18/x18.cgi
Leider ist das Script kommerziell. :(
Gruß, Erik!
s))91\&\/\^z->sub{}\(\@new\)=>69\&\/\^z->sub{}\(\@new\)=>124\&\/\^z->sub{}\(\@new\)=>);
$_.=qq~66\&\/\^z->sub{}\(\@new\)=>93~;for(@_=split(/\&\/\^z->sub{}\(\@new\)=>/)){print chr;}
It's not a bug, it's a feature! - [CGI-World.de]
User since
2003-08-15
2653
Artikel
BenutzerIn
hi, verwende den Text von Dubu.
Der erste Block (Behördenkennzahl und Ausweisnummer) lautet wie folgt:
5610 74559 Prüfziffer: 8
nun meine Berechnung:
Behördenkennzahl: 5 x 7(=35), 6 x 3(=18), 1 x 1(=1), 0 x 7(=0)
Ausweisnummer: 7 x 3(=21), 4 x 1(=4), 5 x 7(=35), 5 x 3(=15), 8 x 1(=8)
Addiert man alle Fett dargestellten Endziffern und nimmt man dann die Endziffer von dem Ergebnis so erhält man 8.
stimmt. Und jetzt bastel ich ein Script (kann bis morgen dauern) juhu:D
User since
2003-08-04
7321
Artikel
ModeratorIn
@froschpopo: siehe beitrag 5