Schrift
[thread]5864[/thread]

Personalausweis prüfen: Code gesucht



<< |< 1 2 >| >> 14 Einträge, 2 Seiten
Froschpopo
 2003-10-30 05:55
#68230 #68230
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
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.
Froschpopo
 2003-10-30 05:57
#68231 #68231
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
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-->
Dubu
 2003-10-30 07:47
#68232 #68232
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
jan
 2003-10-30 10:11
#68233 #68233
User since
2003-08-04
2536 Artikel
ModeratorIn
[Homepage] [default_avatar]
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....
esskar
 2003-10-30 10:16
#68234 #68234
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
hab das mal vor längerem gecoded:

Code: (dl )
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;
}
esskar
 2003-10-30 10:34
#68235 #68235
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
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...
esskar
 2003-10-30 10:38
#68236 #68236
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
PS: der spam von trytoflirt.de nervt manchmal...
würde auch user und password nicht einfach via email verschicken...
[E|B]
 2003-10-30 12:06
#68237 #68237
User since
2003-08-08
2561 Artikel
HausmeisterIn
[Homepage] [default_avatar]
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]
Froschpopo
 2003-10-30 16:21
#68238 #68238
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
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
esskar
 2003-10-30 16:36
#68239 #68239
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
@froschpopo: siehe beitrag 5
<< |< 1 2 >| >> 14 Einträge, 2 Seiten



View all threads created 2003-10-30 05:55.