随机CNPJ

CNPJ 介绍

是什么:巴西法人实体国家注册号,相当于中国的企业统一社会信用代码。

格式:14位数字,格式 XX.XXX.XXX/XXXX-XX

结构


Python 示例

python

import random

def validate_cnpj(cnpj):
    """验证 CNPJ 格式和验证码"""
    cnpj = ''.join(filter(str.isdigit, cnpj))

    if len(cnpj) != 14 or len(set(cnpj)) == 1:
        return False

    # 计算第一个验证码
    weights1 = [5,4,3,2,9,8,7,6,5,4,3,2]
    total = sum(int(cnpj[i]) * weights1[i] for i in range(12))
    digit1 = 11 - (total % 11)
    digit1 = 0 if digit1 > 9 else digit1

    # 计算第二个验证码
    weights2 = [6,5,4,3,2,9,8,7,6,5,4,3,2]
    total = sum(int(cnpj[i]) * weights2[i] for i in range(13))
    digit2 = 11 - (total % 11)
    digit2 = 0 if digit2 > 9 else digit2

    return int(cnpj[12]) == digit1 and int(cnpj[13]) == digit2

def generate_cnpj():
    """生成有效的 CNPJ 号码"""
    base = [random.randint(0, 9) for _ in range(8)] + [0, 0, 0, 1]

    # 计算验证码(简化版)
    weights1 = [5,4,3,2,9,8,7,6,5,4,3,2]
    total = sum(base[i] * weights1[i] for i in range(12))
    digit1 = 11 - (total % 11)
    base.append(0 if digit1 > 9 else digit1)

    weights2 = [6,5,4,3,2,9,8,7,6,5,4,3,2]
    total = sum(base[i] * weights2[i] for i in range(13))
    digit2 = 11 - (total % 11)
    base.append(0 if digit2 > 9 else digit2)

    cnpj = ''.join(map(str, base))
    return f"{cnpj[:2]}.{cnpj[2:5]}.{cnpj[5:8]}/{cnpj[8:12]}-{cnpj[12:]}"

# 使用示例
cnpj = generate_cnpj()
print(f"生成的 CNPJ: {cnpj}")
print(f"验证结果: {validate_cnpj(cnpj)}")

输出示例

text

生成的 CNPJ: 12.345.678/0001-95
验证结果: True

主要用途

一句话总结:CNPJ 是巴西企业的官方识别码,包含基础注册号、分支机构号和验证码,用于所有商业活动。