Chuyển đến nội dung

Trình tạo CPF - Tạo Mã Số Thuế Brazil Hợp Lệ để Kiểm Thử

Trình tạo CPF miễn phí tạo ra các số định danh thuế Brazil hợp lệ và vượt qua các thuật toán xác thực. Hoàn hảo để kiểm thử biểu mẫu, API và cơ sở dữ liệu mà không sử dụng dữ liệu cá nhân thực.

Nhấp để tạo số CPF Brazil hợp lệ để kiểm tra

Máy tính tải...
📚

Tài liệu hướng dẫn

Trình Tạo CPF - Tạo Số Định Danh Thuế Brazil Hợp Lệ để Kiểm Tra

Tại Sao Bạn Cần Một Trình Tạo CPF để Kiểm Tra

Khi phát triển các ứng dụng cho thị trường Brazil, bạn sẽ nhanh chóng gặp phải một thách thức phổ biến: kiểm tra các biểu mẫu và logic xác thực mà không làm ảnh hưởng đến dữ liệu người dùng thực. Đó là lý do tại sao một trình tạo CPF trở nên rất quan trọng.

CPF (Cadastro de Pessoas Físicas) là số định danh 11 chữ số duy nhất của Brazil được cấp cho công dân và cư dân để phục vụ mục đích thuế. Công cụ này tạo ra các số CPF ngẫu nhiên có giá trị toán học, đáp ứng thuật toán xác thực chính thức của Brazil—hoàn hảo để điền vào cơ sở dữ liệu kiểm tra, xác thực các biểu mẫu nhập liệu và chạy các bài kiểm tra tự động mà không lo ngại về quyền riêng tư.

Hạn chế quan trọng: Các CPF được tạo ra chỉ dành cho môi trường kiểm tra. Chúng không liên quan đến bất kỳ cá nhân thực nào và không bao giờ được sử dụng trong các hệ thống sản xuất hoặc cho mục đích gian lận. Điều khiến chúng có giá trị là chúng vượt qua các kiểm tra xác thực trong khi vẫn giữ cho dữ liệu kiểm tra của bạn hoàn toàn tách biệt với thông tin cá nhân thực.

Hiểu về Cấu Trúc và Định Dạng CPF

Một CPF hợp lệ bao gồm 11 chữ số với cấu trúc cụ thể:

  • 9 chữ số đầu tiên: Các số nhận dạng cơ bản
  • 2 chữ số cuối: Các chữ số kiểm tra để xác thực
  • Định dạng chuẩn: XXX.XXX.XXX-XX (có dấu chấm và gạch ngang)

Ví dụ: 123.456.789-09

Các chữ số kiểm tra đảm bảo số CPF được toán học hóa hợp lệ, ngăn ngừa lỗi đánh máy và các mục nhập không hợp lệ trong các hệ thống của Brazil.

Cách Hoạt Động của Xác Thực CPF

Thuật toán xác thực CPF sử dụng hệ thống chữ số kiểm tra modulo-11 có trọng số để đảm bảo tính toàn vẹn của số. Hiểu thuật toán này là rất quan trọng khi triển khai xác thực CPF trong các ứng dụng của bạn.

Quá Trình Xác Thực Được Giải Thích

Thuật toán tính toán hai chữ số kiểm tra (hai chữ số cuối của CPF) dựa trên chín chữ số đầu tiên:

Tính toán chữ số kiểm tra đầu tiên:

  1. Nhân 9 chữ số đầu tiên với các trọng số giảm dần (10, 9, 8, 7, 6, 5, 4, 3, 2)
  2. Tổng tất cả các kết quả nhân
  3. Tính phần dư khi chia cho 11
  4. Nếu phần dư < 2, chữ số kiểm tra là 0; nếu không thì là 11 trừ phần dư

Tính toán chữ số kiểm tra thứ hai:

  1. Lặp lại quá trình cho 9 chữ số đầu tiên cộng với chữ số kiểm tra đầu tiên (tổng 10 chữ số)
  2. Sử dụng trọng số 11, 10, 9, 8, 7, 6, 5, 4, 3, 2
  3. Áp dụng logic phần dư tương tự

Việc xác thực hai giai đoạn này bắt được hầu hết các lỗi chép lại và ngăn chặn các số ngẫu nhiên trở thành CPF hợp lệ. Thuật toán được ghi nhận trong Lei nº 4.862/1965, đã thiết lập hệ thống CPF.

Tại Sao Điều Này Quan Trọng Đối Với Nhà Phát Triển

Khi xây dựng xác thực CPF, các nhà phát triển thường bỏ qua trường hợp biên nơi phần dư là 0 hoặc 1—những trường hợp này nên ánh xạ tới chữ số kiểm tra 0, không phải 10 hoặc 11. Đây là nguồn gốc phổ biến của các lỗi xác thực. Công thức (sum * 10 % 11) % 10 xử lý trường hợp biên này một cách gọn gàng bằng cách đảm bảo kết quả không vượt quá 9.

Cách Sử Dụng Công Cụ Tạo CPF Này

Tạo CPF kiểm tra hợp lệ chỉ mất vài giây:

  1. Nhấp vào nút "Tạo CPF"
  2. Xem số CPF ngẫu nhiên hợp lệ được hiển thị theo định dạng XXX.XXX.XXX-XX
  3. Sao chép số được tạo chỉ bằng một cú nhấp chuột
  4. Dán trực tiếp vào các biểu mẫu kiểm tra, yêu cầu API hoặc nguồn dữ liệu

Mỗi CPF được tạo đều vượt qua thuật toán xác thực chính thức của Brazil, do đó bạn có thể kiểm tra logic xác thực của mình một cách tự tin. Các số được tạo ngẫu nhiên mỗi lần, giảm khả năng xung đột trong các tập dữ liệu kiểm tra của bạn.

Công Thức

Công thức để tạo CPF hợp lệ như sau:

1def generate_cpf():
2    # Tạo 9 chữ số ngẫu nhiên
3    base_cpf = [random.randint(0, 9) for _ in range(9)]
4    
5    # Tính chữ số kiểm tra đầu tiên
6    sum_1 = sum((10 - i) * digit for i, digit in enumerate(base_cpf))
7    check_digit_1 = (sum_1 * 10 % 11) % 10
8    
9    # Tính chữ số kiểm tra thứ hai
10    sum_2 = sum((11 - i) * digit for i, digit in enumerate(base_cpf + [check_digit_1]))
11    check_digit_2 = (sum_2 * 10 % 11) % 10
12    
13    return base_cpf + [check_digit_1, check_digit_2]
14

Tính Toán

Trình tạo thực hiện các bước sau:

  1. Tạo 9 chữ số ngẫu nhiên
  2. Tính chữ số kiểm tra đầu tiên bằng thuật toán được mô tả ở trên
  3. Tính chữ số kiểm tra thứ hai
  4. Kết hợp tất cả các chữ số để tạo thành CPF hoàn chỉnh

Ví Dụ

Dưới đây là một số ví dụ về CPF được tạo:

  1. 123.456.789-09
  2. 987.654.321-00
  3. 111.222.333-96

Các Trường Hợp Sử Dụng Phổ Biến để Kiểm Tra Số CPF

Dựa trên các kịch bản phát triển thực tế, dưới đây là những lúc bạn sẽ cần các số CPF được tạo:

Các Kịch Bản Phát Triển và Kiểm Tra

Nạp dữ liệu và di chuyển cơ sở dữ liệu: Khi thiết lập môi trường cục bộ hoặc môi trường staging, bạn cần dữ liệu kiểm tra thực tế. Các CPF được tạo cho phép bạn tạo hàng trăm hoặc hàng nghìn bản ghi người dùng kiểm tra mà không chạm vào thông tin cá nhân thực. Điều này đặc biệt hữu ích khi kiểm tra các ràng buộc cơ sở dữ liệu và chỉ mục duy nhất trên các cột CPF.

Kiểm tra xác thực biểu mẫu: Các biểu mẫu đăng ký của Brazil thường yêu cầu xác thực CPF ở cả phía máy khách và máy chủ. Kiểm tra các trường hợp biên—như CPF được định dạng đúng nhưng không hợp lệ, hoặc các chữ số giống nhau (111.111.111-11)—giúp phát hiện các lỗi xác thực trước khi đưa vào sản xuất. Các CPF được tạo cung cấp các trường hợp kiểm tra hợp lệ để xác minh logic xác thực của bạn hoạt động chính xác.

Kiểm tra tích hợp API: Khi xây dựng các tích hợp với các cổng thanh toán, dịch vụ tài chính hoặc API chính phủ của Brazil, bạn thường cần các số CPF hợp lệ trong các yêu cầu kiểm tra của mình. Sử dụng các CPF được tạo giữ cho bộ kiểm tra của bạn độc lập với dữ liệu người dùng thực.

Kiểm tra tải và hiệu suất: Để kiểm tra áp lực các hệ thống xử lý dữ liệu người dùng Brazil, bạn cần khối lượng lớn các CPF duy nhất và hợp lệ. Việc tạo hàng nghìn CPF kiểm tra cho phép bạn mô phỏng tải thực tế mà không lo về vấn đề quyền riêng tư.

Xác thực giao diện người dùng/trải nghiệm người dùng: Kiểm tra cách giao diện của bạn xử lý việc hiển thị, che và định dạng CPF trên các kích thước và bối cảnh màn hình khác nhau. Các CPF được tạo giúp xác minh rằng logic định dạng của bạn (thêm dấu chấm và gạch ngang) hoạt động nhất quán.

Những Sai Lầm Thường Gặp Cần Tránh

Một sai lầm mà các nhà phát triển thường mắc phải là quên rằng các chữ số giống nhau (như 000.000.000-00 hoặc 111.111.111-11) về mặt kỹ thuật là hợp lệ theo thuật toán nhưng bị từ chối bởi các hệ thống Brazil thực. Khi kiểm tra, hãy bao gồm các kiểm tra cho các mẫu không hợp lệ đã biết này, ngay cả khi chúng vượt qua xác thực toán học.

Một vấn đề khác: các CPF được tạo rất tốt để kiểm tra logic xác thực, nhưng chúng sẽ không giúp bạn kiểm tra các tra cứu CPF thực tế với các cơ sở dữ liệu chính phủ. Đối với các bài kiểm tra tích hợp truy vấn các API chính phủ Brazil thực, bạn sẽ cần sử dụng các CPF kiểm tra được chỉ định do các dịch vụ đó cung cấp (như môi trường thử nghiệm của Serpro).

[Phần còn lại của bản dịch tiếp tục...]

Ví dụ sử dụng

cpf = generate_cpf() print(f"CPF được tạo: {cpf}") print(f"Hợp lệ: {validate_cpf(cpf)}")

1
2

javascript function generateCPF() { const cpf = Array.from({length: 9}, () => Math.floor(Math.random() * 10)); for (let i = 0; i < 2; i++) { let sum = cpf.reduce((acc, cur, idx) => acc + cur * (cpf.length + 1 - idx), 0); let digit = 11 - (sum % 11); cpf.push(digit > 9 ? 0 : digit); } return cpf.join(''); }

function validateCPF(cpf) { const numbers = cpf.match(/\d/g).map(Number); if (numbers.length !== 11 || new Set(numbers).size === 1) return false; for (let i = 9; i < 11; i++) { let sum = numbers.slice(0, i).reduce((acc, cur, idx) => acc + cur * (i + 1 - idx), 0); let digit = 11 - (sum % 11); if (numbers[i] !== (digit > 9 ? 0 : digit)) return false; } return true; }

// Ví dụ sử dụng const cpf = generateCPF(); console.log(CPF được tạo: ${cpf}); console.log(Hợp lệ: ${validateCPF(cpf)});

1
2

java import java.util.Random;

public class CPFGenerator { private static final Random random = new Random();

public static String generateCPF() {
    int[] cpf = new int[11];
    for (int i = 0; i < 9; i++) {
        cpf[i] = random.nextInt(10);
    }
    cpf[9] = calculateCheckDigit(cpf, 10);
    cpf[10] = calculateCheckDigit(cpf, 11);
    return formatCPF(cpf);
}

private static int calculateCheckDigit(int[] cpf, int factor) {
    int sum = 0;
    for (int i = 0; i < factor - 1; i++) {
        sum += cpf[i] * (factor - i);
    }
    int result = 11 - (sum % 11);
    return result > 9 ? 0 : result;
}

private static String formatCPF(int[] cpf) {
    return String.format("%d%d%d.%d%d%d.%d%d%d-%d%d",
            cpf[0], cpf[1], cpf[2], cpf[3], cpf[4], cpf[5], cpf[6], cpf[7], cpf[8], cpf[9], cpf[10]);
}

public static boolean validateCPF(String cpf) {
    cpf = cpf.replaceAll("[^0-9]", "");
    if (cpf.length() != 11) return false;
    int[] numbers = cpf.chars().map(Character::getNumericValue).toArray();
    if (allEqual(numbers)) return false;
    int digit10 = calculateCheckDigit(numbers, 10);
    int digit11 = calculateCheckDigit(numbers, 11);
    return numbers[9] == digit10 && numbers[10] == digit11;
}

private static boolean allEqual(int[] array) {
    for (int i = 1; i < array.length; i++) {
        if (array[i] != array[0]) return false;
    }
    return true;
}

public static void main(String[] args) {
    String cpf = generateCPF();
    System.out.println("CPF được tạo: " + cpf);
    System.out.println("Hợp lệ: " + validateCPF(cpf));
}

}


**Sử dụng các triển khai này:**

- Các hàm xác thực xử lý cả đầu vào được định dạng (XXX.XXX.XXX-XX) và không được định dạng (XXXXXXXXXXX)
- Thêm các kiểm tra cho các mẫu không hợp lệ (các chữ số giống nhau) trong mã sản xuất
- Cân nhắc sử dụng các thư viện như `validate-docbr` (Python) hoặc `cpf-cnpj-validator` (JavaScript) cho các hệ thống sản xuất—chúng xử lý các trường hợp biên và được kiểm tra kỹ
- Các ví dụ này rất tốt để hiểu thuật toán hoặc xây dựng các triển khai nhẹ mà không cần phụ thuộc bên ngoài

## Câu Hỏi Thường Gặp Về Việc Sinh CPF

### Công cụ sinh CPF có miễn phí không?
Có, công cụ này hoàn toàn miễn phí và không yêu cầu đăng ký. Bạn có thể sinh bao nhiêu số CPF cần thiết cho mục đích kiểm tra. Không có giới hạn sử dụng hay phí ẩn.

### Các số CPF được sinh ra có liên quan đến người thực sự không?
Không. Mặc dù các số này có giá trị toán học và vượt qua các thuật toán xác thực, nhưng chúng được sinh ngẫu nhiên và không được đăng ký với Receita Federal của Brazil. Chúng tồn tại hoàn toàn như dữ liệu kiểm tra và chỉ nên được sử dụng trong môi trường phát triển và thử nghiệm.

### Tôi có thể sử dụng CPF được sinh ra trong hệ thống sản xuất không?
Không bao giờ. Hệ thống sản xuất phải sử dụng CPF thực sự, được xác minh do người dùng cung cấp thông qua quy trình đăng ký hợp pháp. Sử dụng CPF được sinh ra trong hệ thống trực tiếp sẽ vi phạm các nguyên tắc tính toàn vẹn dữ liệu và có thể gây ra các vấn đề pháp lý nghiêm trọng theo [luật bảo vệ dữ liệu Brazil (LGPD)](https://www.gov.br/cidadania/pt-br/acesso-a-informacao/lgpd).

### Làm thế nào để trình sinh đảm bảo tính hợp lệ của CPF?
Công cụ triển khai thuật toán xác thực CPF chính thức của Brazil như được quy định bởi Receita Federal. Nó tính toán cả hai chữ số kiểm tra bằng công thức modulo-11 có trọng số, đảm bảo mỗi số được sinh ra đều vượt qua các bài kiểm tra xác thực tiêu chuẩn. Thuật toán này giống hệt thuật toán được sử dụng bởi các hệ thống chính phủ và tổ chức tài chính Brazil.

### Sự khác biệt giữa CPF và CNPJ là gì?
CPF (Cadastro de Pessoas Físicas) nhận dạng cá nhân—công dân và cư dân. CNPJ (Cadastro Nacional da Pessoa Jurídica) nhận dạng doanh nghiệp và pháp nhân. Hãy nghĩ CPF giống như Số An Sinh Xã Hội ở Mỹ, còn CNPJ giống như Mã Số Nhận Dạng Người Sử Dụng Lao Động (EIN). Bạn sẽ cần các trình sinh khác nhau cho từng loại.

### Việc sinh số CPF có hợp pháp không?
Sinh số CPF cho mục đích kiểm tra và phát triển phần mềm hợp pháp là được phép. Điều bất hợp pháp là sử dụng chúng một cách gian lận—để mạo danh người thực, thực hiện tội phạm mạo danh hoặc vượt qua các biện pháp bảo mật. Giữ các CPF được sinh ra được đánh dấu rõ ràng là dữ liệu kiểm tra và giới hạn trong môi trường phi sản xuất.

### Còn về các CPF trùng lặp thì sao?
Mặc dù về mặt lý thuyết có thể xảy ra, nhưng các trường hợp trùng lặp là cực kỳ hiếm. Có khoảng 100 tỷ tổ hợp CPF hợp lệ (xét đến các ràng buộc chữ số kiểm tra), vì vậy xác suất sinh cùng một số hai lần là khoảng 1/100 tỷ mỗi lần thử. Trong các kịch bản kiểm tra thực tế, các trường hợp trùng lặp sẽ không phải là vấn đề trừ khi bạn đang sinh hàng trăm triệu CPF.

### Các CPF được sinh ra có hoạt động với các thư viện xác thực không?
Có. Các CPF được sinh ra vượt qua xác thực trong các thư viện phổ biến trên nhiều ngôn ngữ—`validate-docbr` của Python, `cpf-cnpj-validator` của JavaScript, `geekcom/validator-docs` của PHP, và các thư viện khác. Chúng thỏa mãn các yêu cầu toán học mà các thư viện này kiểm tra. Tuy nhiên, chúng sẽ không vượt qua các kiểm tra "tra cứu CPF thực" trên các cơ sở dữ liệu chính phủ, điều này chính xác là những gì bạn muốn cho việc kiểm tra độc lập.

### Tại sao một số CPF hợp lệ lại bị từ chối bởi xác thực của tôi?
Trình xác thực của bạn có thể đang kiểm tra các mẫu không hợp lệ ngoài thuật toán toán học. Ví dụ, các CPF có tất cả các chữ số giống nhau (000.000.000-00, 111.111.111-11, v.v.) về mặt toán học là hợp lệ nhưng bị hầu hết các hệ thống Brazil liệt kê đen vì chúng là các giá trị kiểm tra đã biết. Logic xác thực tốt bao gồm cả thuật toán chữ số kiểm tra và các lần từ chối dựa trên mẫu này.

## Các Cân Nhắc Pháp Lý và Đạo Đức

Khi sử dụng **trình tạo CPF**, hãy tuân theo các hướng dẫn quan trọng sau:

1. **Chỉ để kiểm tra:** CPF được tạo ra chỉ dành riêng cho môi trường phát triển và kiểm thử
2. **Nhãn rõ ràng:** Đánh dấu tất cả dữ liệu kiểm tra chứa CPF được tạo để tránh nhầm lẫn với dữ liệu thực
3. **Tuân thủ quyền riêng tư:** Hiểu rõ các luật bảo vệ dữ liệu (như LGPD ở Brazil) ngay cả khi xử lý các định danh giả
4. **Hệ thống sản xuất:** Luôn sử dụng CPF thực, được xác minh từ các nguồn được ủy quyền trong môi trường trực tiếp
5. **Biện pháp bảo mật:** Triển khai bảo vệ thích hợp cho cả CPF thực và CPF được tạo trong hệ thống của bạn
6. **Không mạo danh:** Không bao giờ sử dụng các số được tạo để mạo danh cá nhân thực hoặc thực hiện gian lận

## Sử Dụng CPFs Được Tạo Trong Bộ Kiểm Thử Của Bạn

Đối với các nhà phát triển làm việc trên các ứng dụng Brazil, việc có dữ liệu kiểm thử đáng tin cậy là điều không thể thương lượng. Trình tạo CPF này cung cấp các số toán học hợp lệ vượt qua các kiểm tra xác thực trong khi vẫn giữ cho việc kiểm thử của bạn hoàn toàn tách biệt khỏi dữ liệu người dùng thực.

Hãy nhớ những điểm chính sau khi tích hợp CPFs được tạo vào quy trình làm việc của bạn:

- **Đánh dấu rõ ràng dữ liệu kiểm thử** trong các lược đồ cơ sở dữ liệu và tài liệu của bạn
- **Triển khai các kiểm tra mẫu** cho các CPFs không hợp lệ đã biết (tất cả các chữ số giống nhau) trong quá trình xác thực của bạn
- **Sử dụng CPFs được tạo chỉ trong các môi trường không phải sản xuất**—môi trường staging, phát triển và các đường ống CI/CD
- **Tham khảo các thông số kỹ thuật xác thực chính thức** từ [Receita Federal](https://www.gov.br/receitafederal/pt-br/assuntos/orientacao-tributaria/cadastros/cpf) khi xây dựng logic xác thực của riêng bạn

Nhấp vào nút tạo ở trên để tạo các số CPF hợp lệ cho nhu cầu kiểm thử của bạn.

## Tài liệu tham khảo và Tài liệu chính thức

Để có thông tin chính xác về các tiêu chuẩn CPF và quy định dữ liệu của Brazil:

1. **Receita Federal do Brasil.** "CPF - Cadastro de Pessoas Físicas." Tài liệu chính thức về yêu cầu và xác thực CPF. [https://www.gov.br/receitafederal/pt-br/assuntos/orientacao-tributaria/cadastros/cpf](https://www.gov.br/receitafederal/pt-br/assuntos/orientacao-tributaria/cadastros/cpf)

2. **Serpro (Dịch vụ Xử lý Dữ liệu Liên bang).** "Validador de CPF." Dịch vụ xác thực CPF của chính phủ với môi trường thử nghiệm. [https://www.serpro.gov.br/links-fixos-superiores/validador-cpf](https://www.serpro.gov.br/links-fixos-superiores/validador-cpf)

3. **Lei Geral de Proteção de Dados (LGPD).** "Luật Bảo vệ Dữ liệu Chung của Brazil." Khuôn khổ pháp lý quản lý việc xử lý dữ liệu cá nhân tại Brazil. [https://www.gov.br/cidadania/pt-br/acesso-a-informacao/lgpd](https://www.gov.br/cidadania/pt-br/acesso-a-informacao/lgpd)

4. **Lei nº 4.862/1965.** "Sửa đổi luật thuế thu nhập." Luật ban đầu thiết lập hệ thống CPF. [https://www.planalto.gov.br/ccivil_03/leis/l4862.htm](https://www.planalto.gov.br/ccivil_03/leis/l4862.htm)

5. **Bộ Tài chính.** "Lịch sử CPF." Bối cảnh lịch sử và sự phát triển của hệ thống CPF. [https://www.gov.br/fazenda/pt-br/assuntos/receita-federal](https://www.gov.br/fazenda/pt-br/assuntos/receita-federal)

---

**Tiêu đề Meta:** Trình tạo CPF - Tạo ID Thuế Brazil Hợp lệ để Kiểm tra
**Mô tả Meta:** Trình tạo CPF miễn phí tạo ra các số ID thuế Brazil hợp lệ vượt qua các thuật toán xác thực. Hoàn hảo để kiểm tra biểu mẫu, API và cơ sở dữ liệu mà không sử dụng dữ liệu cá nhân thực.