goncin@wordpress.com:~$ _

Linux, programação e toda sorte de nerdices

O novo Registro de Identidade Civil (RIC), e as implicações para quem é desenvolvedor

Salve, pessoal!

Após um loooongo hiato, volto a blogar. E a inspiração deste post surgiu a partir de um tweet do glorioso @miguelmolina78.

Como deve ser do conhecimento de todos, o Governo Federal tomou a iniciativa de criar o Registro de Identidade Civil (RIC), instituído pela Lei nº 9.454, de 7 de abril de 1997, e regulamentado pelo Decreto nº 7.166, de 5 de maio de 2010. O lapso de mais de três anos entre a lei e o decreto é algo relativamente normal, pois, enquanto a primeira apenas estatuiu que o RIC existisse, o segundo é que especifica como seu funcionamento no mundo real, a partir de estudos técnicos. Sua emissão já começou. Ainda assim, muitas questões ainda estão por ser respondidas.

O principal objetivo do RIC é acabar, paulatinamente, com a confusão gerada pela emissão das Carteira de Identidade (RG) pelos Estados e pelo Distrito Federal. O atual sistema permite que, em tese, uma pessoa possa ter até 27 (!!) RGs com números distintos, cada qual emitido por uma Unidade da Federação diferente. E, como se sabe, cada uma dessas UFs é plenamente autônoma para adotar o sistema de numeração que quiser nos RGs que emite, tornando ingrata, para nós desenvolvedores, a tarefa de validá-los. Quantos de nós não usam o velho e bom CPF (que deveria ser utilizado apenas por instituições financeiras) para identificar unicamente uma pessoa num cadastro, exatamente por falta de padronização dos RGs?

Pois bem, se o RIC cumprir seu propósito, a vida dos #SouDev será bastante facilitada. Todavia, como já disse, alguns pontos ainda estão pendentes. Do nosso ponto de vista, o mais importante talvez seja o cálculo do dígito verificador (DV) do número do RIC.

RIC de exemplo (divulgação)

RIC de exemplo (divulgação)

A partir das imagens de divulgação disponibilizadas pelo Governo Federal (ainda não tive o privilégio de “ver com a mão” um RIC de verdade), o que se pode inferir é que o número RIC é composto por 10 (dez) dígitos numéricos, seguidos por um hífen e pelo DV. Se o cálculo do DV seguir o padrão Módulo 11, calculá-lo e validá-lo não deve ser diferente do que já fazemos em relação aos números de CPF e RG.

<?php
function ricCalcularDigito($numRic) {

  // Retira o hífen do número RIC, caso haja
  $numRic = str_replace('-', '', $numRic);

  if(strlen($numRic) < 10 || strlen($numRic) > 11)
    throw new Exception ('[ricCalcularDigito] O número RIC deve conter 10 dígitos (sem o DV) ou 11 dígitos (com o DV), ignorado o hífen');

  // Sequência de multiplicação
  $seqMult = array (8, 9, 2, 3, 4, 5, 6, 7, 8, 9);

  $soma = 0;

  for($i = 0; $i < 10; ++$i) {

    $caracterPos = substr($numRic, $i, 1);

    if(! is_numeric($caracterPos))
      throw new Exception("[ricCalcularDigito] Encontrado caracter não-numérico na posição $i");

    // Multiplica-se o carater da posição pelonúmero correspondente da sequência de
    // multiplicação, somando-se o resultado aos anteriores
    $soma += ((int) $caracterPos) * $seqMult[$i];

  }

  // O dígitoé, normalmente, o resto da soma dividido por 11...
  $dv = $soma % 11;

  // ... ou 0 (zero), se o resto for igual a 10.
  return $dv == 10 ? 0 : $dv;

}

function ricVerificarDigito($numRic) {

  // Retira o hífen do número RIC, caso haja
  $numRic = str_replace('-', '', $numRic);

  if(strlen($numRic) != 11)
    throw new Exception ('[ricVerificarDigito] O número RIC deve conter 11 dígitos (com o DV), ignorado o hífen');

  $dv = strlen($numRic, 10, 1);

  if(! is_numeric($dv))
    throw new Exception('[ricVerificarDigito] Encontrado caracter não-numérico na posição 11 (DV)');

  return ((int) $dv) == ricCalcularDigito($numRic);

}

Nada obstante, segundo o código acima, o dígito para o número RIC de exemplo é “0” (zero), e não “2”, como sugere a imagem de divulgação. Fica a pergunta: a imagem contém um número com dígito também fictício, ou o cálculo do DV utiliza outro método? Já que nem o Grande Oráculo sabe, o jeito é aguardar os próximos capítulos.

Anúncios

6 Respostas para “O novo Registro de Identidade Civil (RIC), e as implicações para quem é desenvolvedor

  1. Pingback: Tweets that mention O novo Registro de Identidade Civil (RIC), e as implicações para quem é desenvolvedor « goncin@wordpress.com:~$ _ -- Topsy.com

  2. Miguel 21/10/2010 às 10\1024

    Opa.. Descobri que sou “glorioso”..kkkk..
    Bom Post goncin..
    Aliás meu medo está em justamente ter que esperar as informações escaparem do Governo Federal.
    97,8% de chance deles soltarem as regras e as validações (caso forem outras mesmo) aos 48 do segundo tempo.
    Daí, my friend, será muito café, hora extra e pressão pra regularizar e adaptar os sistemas.
    Mas também pode nem virar nada né. As leis aqui tem uma dificuldade enorme pra “pegar”..kkk

    Gde Abraço, rapaz!

  3. Jorge Lencini 30/12/2010 às 18\0640

    Prezados Goncin e Miguel, saudações.

    Já havia esquecido deste assunto que não mostrava ainda nenhum efeito prático na minha pacata vidinha, mas fiquei animado com o lançamento oficial do RIC, apesar de tardio. Sou responsável pelo projeto de terminais de auto atendimento nas empresas dedistribuição de energia da Eletrobras em unidades da federação (AC/AM/AL/PI/RO/RR) e tenho especial interesse em obter e trocar informações sobre o uso do RIC como ferramenta de validação de identidade nos processos de auto atendimento e de atendimento presencial.Gostaria de saber que tipo de leitor precisarei integrar aos terminais e aos guichês de atendimento, bem como saber se outros órgãos públicos poderão efetuar algum tipo de gravação no chip, que até o momento, estou considerando como um smart card padrão. Bem, peço licença pra entrar na conversa eagradeço qualquer dica de conteúdo que puderm compartilhar. Boas entradas, processamentos e saídas de ano….

  4. goncin 30/12/2010 às 22\1002

    Caro Jorge,

    Primeiramente, obrigado pelo comentário e pela visita.

    Quero crer que o RIC entrou oficialmente em vigor hoje (30/12/2010), após alguns meses de testes em certos pontos do país. Embora a iniciativa seja louvável, ainda não soube onde encontrar os detalhes técnicos da implementação do novo documento, capazes de responder às nossas perguntas. Sequer tenho certeza quanto ao órgão encarregado da emissão e da guarda dos dados do RIC – parece-me que é um recém-criado Instituto Federal de Identificação, vinculado à Receita Federal.

    Como bem observou o colega Miguel, as informações no chegarão em doses homeopáticas, incompletas e – ouso afirmar – atrasadas. Teremos mesmo que correr atrás. É o jeito Brasil de ser.

    Um abraço, volte sempre e Feliz Ano Novo! 🙂

  5. Jorge Lencini 03/01/2011 às 17\0522

    Concordo… de miha parte, estou aguardando a devida liberação dos meus superiores (órgão público) para manter contato com um pessoal do Ministério da Justiça, que sei que terão informações sobre o assunto. Peço sua licença para postar aqui o que eu conseguir saber. []´s

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: