Algoritimo de validação de CPF brasileiro –; Individuelle Anmeldung

O Que Ando Aprendendo Nesta Caminhada Sobre a Terra

Algoritimo de validação de CPF brasileiro –; Individuelle Anmeldung

In diesem Artikel werde ich Schritt für Schritt die Transformation eines Algorithmus erklären, um die Gültigkeit eines CPF zu Code in PHP zu verifizieren.

Wenn Sie den Algorithmus bereits kennen und direkt zu den verfügbaren Codes gehen möchten, Klicken Sie hier.

Aber was ist die CPF?

CPF ist die Abkürzung für Individual Registration. Es handelt sich um eine Reihe brasilianischer Dokumente, die derzeit vom Internal Revenue Service verwaltet und herausgegeben werden.. Jeder Brasilianer hat das Recht auf (oder Pflicht) Um einen und nur damit zu haben, ist es möglich, Zugang zu Bankdienstleistungen zu haben, Einschreibung in öffentliche Bachelor-Studiengänge, Amtsantritt durch öffentliche Ausschreibung, Kreditkarte haben, u.a. Beispiele.

Zusammensetzung des CPF

Das CPF setzt sich zusammen aus elfstellig, Und die Die letzten drei Ziffern Bedeutungen haben, die wir unten erklären werden.

Die neunte Ziffer, Lesen von links nach rechts, gibt die Steuerregion wo es ausgestellt wurde. Es gibt zehn Regionen für die Ziffern von null bis neun, wie in der folgenden Tabelle gezeigt..

1 –DF, LOS, FRAU, MT und TO
2 –WECHSELSTROM, BIN, AP, PAPA, RO und RR
3 –EG, MA und PI
4 –AL, PB, PE, RN
5 - BA und SE
6 –MG
7 - ES und RJ
8 –SP
9 - PR und SC
0 - RS

Die ersten acht Ziffern sind die Basisnummer.

Die letzten beiden Ziffern sind die Checkout-Ziffern.

Diese Ziffern werden aus Berechnungen der ersten neun Ziffern nach folgenden Regeln generiert:

Erste Ziffernprüfung

Für die erste Ziffer, Wir nahmen die 8 erste Ziffern und multiplizieren Sie jede von ihnen mit einer Zahl, die in 10 und das Ausmaß, in dem wir nach rechts vorrücken, Wir verringern uns in 1 Dieser Multiplikator und wir addieren alle Ergebnisse.

Zum besseren Verständnis, Nehmen 123.456.789-XY als Beispiel für CPF, um die Ziffer zu haben XY absichtlich.

1 x 10 = 10
2 x 9 = 18
3 x 8 = 24
4 x 7 = 28
5 x 6 = 30
6 x 5 = 30
7 x 4 = 28
8 x 3 = 24
9 x 2 = 18
Addierend 10 + 18 + 24 + 28 + 30 + 30 + 28 + 24 + 18 Haben 210.

Jetzt, Mit der erhaltenen Summe haben wir zwei Möglichkeiten, zum Ziffernprüfer zu gelangen.

Methode 1

Multiplizieren 210 bis 10, Wir teilen durch 11 und wir nahmen den Rest.

Wir haben dann: 210 x 10 = 2.100

2.100 / 11 = 190 mit Ruhe 10.

Wenn der Rest ist 10 Die Prüfziffer ist Null, Andernfalls, Der Rest ist die Prüfziffer.

In unserem Fall, da der Rest gleich ist 10 Die erste Ziffer lautet 0 (0 (null)).

Methode 2

Wir bekommen den Rest der 210 bis 11.

Wir haben dann: 210 / 11 ist gleich 19 mit Ruhe 1.

Hier haben wir eine Regel, wann der Rest ist 0 (0 (null)) oder 1 (Eins). In diesem Fall ist die Prüfziffer 0 (null), Andernfalls ziehen wir den Rest der 11 So erhalten Sie die Prüfziffer.

Für unseren Fall, wie wir Ruhe haben 1, Unser erster Ziffernprüfer ist 0 (0 (null)).

Zweiter Ziffernprüfer

So rufen Sie die Überprüfung der zweiten Ziffer ab, Wir fügen den ersten Ziffernprüfer zum 9 Anfangsziffern und wir machen wieder den gleichen Prozess für die erste Ziffer, mit dem Unterschied, dass wir jetzt von der zweiten Ziffer beginnen.

Unser CPF hat bereits den Wert 123.456.789-0X und die erforderlichen Operationen sind unten.
2 x 10 = 20
3 x 9 = 27
4 x 8 = 32
5 x 7 = 35
6 x 6 = 36
7 x 5 = 35
8 x 4 = 32
9 x 3 = 27
0 x 2 = 0
Addierend 20 + 27 + 32 + 35 + 36 + 35 + 32 + 27 + 0 Haben 244.

Jetzt, Mit der erhaltenen Summe sollten wir einen der beiden bereits erläuterten Wege verwenden, um zur Prüfziffer zu gelangen.

Methode 1

Multiplizieren 244 bis 10, Wir teilen durch 11 und wir nahmen den Rest.

Wir haben dann: 244 x 10 = 2.440

2.440 / 11 = 221 mit Ruhe 9.

Wenn der Rest ist 10 Die Prüfziffer ist Null, Andernfalls, Der Rest ist die Prüfziffer und in unserem Fall haben wir 9 als Second Digit Checker.

Methode 2

Wir bekommen den Rest der 244 bis 11.

Wir haben dann: 244 / 11 ist gleich 22 mit Ruhe 2.

Denken Sie daran, dass wir eine Regel haben, wann der Rest ist 0 (0 (null)) oder 1 (Eins) Die Prüfziffer ist Null.

Wenn es größer ist als 1 Subtrahieren Sie diesen Wert von 11 So erhalten Sie die Prüfziffer.

Für unseren Fall, Haben 11 ; 2 = 9 als unser zweiter Ziffernprüfer, der den gleichen Wert hat, der in der Methode erhalten wurde 1.

CPF hat ein Limit für die Ausgabe?

Theoretisch, Wir können bis zu 10 ^ 8 oder 100.000.000 (Hundert Millionen) Kombinationsmöglichkeiten für jede Region. In der Praxis haben wir etwas weniger durch den Verzicht auf wiederholte Ziffern, zum Beispiel. Obwohl es wie eine ziemlich große Zahl aussieht, Es sollte irgendwann renoviert werden, da es nicht wiederverwendet werden kann, auch wenn eine Person stirbt.

Angenommen, sie existieren bereits in der Region 8 (übernachten in São Paulo) ungefähr 40 Millionen von ausgegebenen CPFs (Ich konnte keine zuverlässigen Daten in 2022 Ich verwende also eine ungefähre Zahl der Wohnbevölkerung, die von 44,5 Millionen von Menschen), würde ungefähr übrig bleiben 60 Millionen von CPFs verfügbar. Mit der aktuellen Wachstumsrate der CPFs (Jahr von 2022) in über 600 Tausend pro Jahr, Das System sollte knapp unter 100 Jahre.

Wir kommen hier am Ende der Erklärung und des Beispiels zur Zusammensetzung des CPF. Unser Beispiel CPF war 123.456.789-09. Im Folgenden finden Sie einige Beispiele für Codes, um die Checkout-Ziffern zu generieren, Wie viel sie zu validieren sind.

Codes

Version PHP.

Version JavaScript.

2 Antworten

  1. [;] die niedrigste Zahl der zyklomatischen Komplexität, die ich auf der Grundlage der Erklärung im Artikel Algoritimo de validação de CPF brasileiro – Cadastro de Pessoa Física erhalten konnte. Es hat eine leichte Änderung zum Zeitpunkt der Berechnung des zweiten digitalisierten Testers. Stattdessen [;]

  2. [;] Anzahl der zyklomatischen Komplexitätslinien, die ich auf der Grundlage der Erklärung im Artikel Algoritimo de validação de CPF brasileiro – Cadastro de Pessoa Física erhalten habe. Es hat eine leichte Änderung zum Zeitpunkt der Berechnung des zweiten digitalisierten Testers. Stattdessen [;]

Hinterlasse eine Antwort

Ihre e-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind markiert *

Diese Seite benutzt Akismet, Spam zu reduzieren. Erfahren Sie, wie Ihre Kommentardaten verarbeitet wird.