Start AGB Impressum Kontakt

 

Empfaenger : FIDO/WISSEN.GER (All)
Absender : gelöscht
Betreff : Personalausweis
Datum : Mo 29.05.95, 17:04 (erhalten: 05.06.95)
Groesse : 3051 Bytes
----------------------------------------------------------------------
Hallo!

Da ja immer mehr fragen und sich die Diskussion (eher Spekulation) wie in der 
CCC.GER entwickelt (da ist der Thread grad vorbei), hier ein Proggi dazu. Nach 
dem Schaubild unten muss man zuerst wwwwNNNNN eingeben, dann spuckt das 
Programm die Pruefzahl p aus. Das geht dann so weiter. Wer das nicht begreift 
kann die Erklaerung unten mit einem Taschenrechner nachvollziehen ;-)

=== Cut ===
program Personalausweis (input,output);

{
Ziffernblocks auf dem Bundespersonalausweis:
============================================

wwwwNNNNNpD<<yyMMddX<YYmmDDx<<<<<<n
|||||||||||  ||||||| |||||||      |
|||||||||||  ||||||| |||||||      ~\__ Pruefsumme ALLER vorherigen Ziffern
|||||||||||  ||||||| |||||||
|||||||||||  ||||||| ||||||~\__ Pruefsumme Ablaufdatum
|||||||||||  ||||||| ||||~~\__ Ablaufdatum Tag
|||||||||||  ||||||| ||~~\__ Ablaufdatum Monat
|||||||||||  ||||||| ~~\__ Ablaufdatum Jahr
|||||||||||  |||||||
|||||||||||  ||||||~\__ Pruefsumme Geb.-Datum
|||||||||||  ||||~~\__ Geb.-Tag
|||||||||||  ||~~\__ Geb.-Monat
|||||||||||  ~~\__ Geb.-Jahr
|||||||||||
|||||||||| \__ Staatszugehoerigkeit D = Deutsch ?
||||||||| \__ Pruefsumme fuer wwwwNNNNN
||||~~~~~\__ laufende Zaehlnummer
~~~~\__ Erstwohnsitz Kennzahl



Berechnung der Pruefsumme:
==========================

1)
Die erste Ziffer wird mit 7 multipliziert,
die zweite Ziffer wird mit 3 multipliziert,
die dritte Ziffer wird mit 1 multipliziert,
und so weiter (die vierte wieder mit 7, die fuenfte mit 3, etc...)

2)
Die so erhaltenen Zahlen werden alle zu einer Summe aufaddiert.

3)
Die Pruefsumme ist der Rest von der Summe nach einer Divison durch 10
(also Summe modulo 10).

}

const
Seriennummernlaenge = 24;

var
Seriennummer: String [SerienNummernlaenge];
FaktorSchluessel: String [SerienNummernlaenge];
Fehler: Boolean;
Pruefziffer: Byte;

procedure ErrechnePruefziffer;
var i, a, b, err, Summe: Integer;
begin
Summe := 0;
for i := 1 to SerienNummernLaenge do begin
val (SerienNummer[i],a,err);
If Err <> 0 then
begin
Writeln ('Fehler - keine Ziffer an Position ',i);
Fehler := True;
exit;
end;
val (FaktorSchluessel[i],b,err);
Summe := Summe + (a * b);
end;
PruefZiffer := Summe mod 10;
end;

begin
writeln ('BundesPersonalAusweisPruefziffernberechnung');
writeln ('original BASIC Source by Wau Holland, CCC, Hackerbibel II');

FaktorSchluessel := '731731731731731731731731';
SerienNummer := '000000000000000000000000';
Fehler := False;
Write ('Ausweisnummer (ohne Pruefziffer) >');
ReadLn (Seriennummer);
Writeln;
ErrechnePruefziffer;
if not Fehler
then Writeln ('Gefundene Pruefziffer ist: ', Pruefziffer)
end.
=== Cut ===


... Bleibe im Lande und wehre Dich taeglich

 

Willkürliche Links:


Dieses Thema hinzufügen bei Delicious Folkd Furl Google Linkarena Mrwong Oneview Webnews Yahoo Yigg


mit freundlicher Unterstützung von www.RUCKSACKSHOP.com