No. It only follows the mathematical format used by form validators.
Generate synthetic Brazilian driver license numbers with check digits for staging, QA and registration tests.
The CNH (Carteira Nacional de Habilitação) is Brazil's driver license, and the registration number that identifies it has 11 digits: 9 base digits and 2 check digits. In registration systems, the common mistake is testing only the mask and ignoring the check digits, letting malformed numbers slip through. A "valid" number here only means the two check digits were computed correctly under the modulo-11 rule, not that a license, a driver or a real authorization exists. This generator creates synthetic numbers, calculated in the browser, so developers can exercise forms and integrations without querying official databases or using a real person's CNH. It is test data, not a document.
The CNH number has 9 base digits followed by 2 check digits. The first check digit comes from a sum in which each base digit is multiplied by a weight decreasing from 9 to 1; the remainder of that sum divided by 11 becomes the digit, with an adjustment when the result would be 10.
The second check digit uses the same base with weights increasing from 1 to 9 and a correction factor inherited from the first calculation. This chaining is what catches typing mistakes: swapping or transposing a digit almost always breaks the math and the number is rejected.
First case: the validation happy path. Rental, insurance and transport forms often validate the CNH check digit. To test acceptance you need numbers that pass the math, which is exactly what the generator delivers, without reaching for anyone's real license.
Second case: fixtures and automated tests. QA suites and environment seeds need several fictitious drivers. Generating coherent numbers in bulk keeps tests stable and decoupled from any real person.
The generated number is fictitious. It does not authorize driving, does not represent a driver and must not be used to impersonate anyone, rent a vehicle, defraud registrations or any deceptive purpose, misusing documents is a crime.
On the technical side: passing the check digit is not the same as existing in official databases. Systems tied to those records reject the number if it does not match a real license, so it does not replace genuine verification.
Paste the code into your HTML and the tool shows up on your page, without J-Kit's navigation and ads. It still runs in the browser of whoever visits your site.
<iframe
src="https://jkit.tools/embed/en-US/cnh-generator"
width="100%"
height="600"
style="border:0"
loading="lazy"
title="Brazilian CNH Generator"
></iframe>These references help contextualize formulas, standards, APIs and limitations used on this page. They do not replace professional validation when a result has legal, financial, medical or operational impact.
No. It only follows the mathematical format used by form validators.
Generation happens locally in the browser. Analytics receives only action, status, type and format, never the generated CNH.