Dashboard / RG
RG
Ferramenta online para validar e gerar números de RG (Registro Geral) utilizando o algoritmo da SSP-SP (padrão mais comum em sistemas).
Como funciona?
O RG (Registro Geral) no Brasil não possui uma regra de validação nacional unificada, pois cada estado tem autonomia para emitir o documento. Padrão SSP-SP (Mais utilizado): A maioria dos sistemas valida o RG baseando-se na regra da Secretaria de Segurança Pública de São Paulo. O documento possui 9 dígitos (8 de dados + 1 verificador). Cálculo: Multiplica-se os 8 primeiros dígitos por pesos de 2 a 9 consecutivamente. O dígito verificador é calculado subtraindo o resto da divisão da soma por 11 de 11.
- Se o resultado for 10, o dígito é X.
- Se o resultado for 11, o dígito é 0.
Implementação
def validar_rg(rg: str) -> bool:
rg = rg.upper().replace("-", "").replace(".", "")
rg = "".join(filter(lambda x: x.isdigit() or x == 'X', rg))
if len(rg) != 9: return False
soma = 0
for i in range(8):
soma += int(rg[i]) * (i + 2)
resto = soma % 11
digito = 11 - resto
if digito == 10: digito_calc = 'X'
elif digito == 11: digito_calc = '0'
else: digito_calc = str(digito)
return digito_calc == rg[8]