Saltar al contenido

algoritmo de luhn verifique mi ejemplo de código de número de identificación

Te damos la bienvenida a nuestra comunidad, en este lugar vas a hallar la solucíon que andabas buscando.

Ejemplo: validar el número de identificación de rsa

# NB--> Language: Perluse Scalar::Util 'looks_like_number';subValidate_IdNum($);subGetLuhnDigit($);#----------------------------------------------------------------## Validates the id number being parsed and returns a boolean, # If the id number is valid, returns 0, otherwise returns 1#      PARAMETERS#                 The id number that needs to be validated#      EXAMPLES#                "Id number cannot contain numeric values"]>subValidate_IdNum($)
   my $sSubName =(caller(0))[3]; # This isjust a reference to the function/subroutine name
   my $bFaulty =0;

   my $sIdNo = $_[0];
   
   my $iStrLen = length $sIdNo;
   my $LastChar =substr($sIdNo,-1);if(looks_like_number($sIdNo)==0)
      $bFaulty =1;elseif((length $sIdNo)!=13)
         $bFaulty =1;
      elsif (substr($sIdNo,-1)!=GetLuhnDigit($sIdNo))
         $bFaulty =1;if($sRetMsg eq "")
      $sRetMsg ="0";return($sRetMsg,$bFaulty);#----------------------------------------------------------------## Used to validate rsa id numbers: (finds expected last digit given the first 12)# See the Luhn algorithm: https://en.wikipedia.org/wiki/Luhn_algorithmsubGetLuhnDigit($)
   my $sSubName =(caller(0))[3]; # This isjust a reference to the function/subroutine name
   my $iLastDigit =-1;
   my $s12Digits = $_[0];
   my $iSumOdd =0;
   my $iEvenDigits ="";for(my $i=0;$i<6;$i++)
     $iSumOdd = $iSumOdd +substr($s12Digits,2* $i,1);for(my $i=0;$i<6;$i++)
     $iEvenDigits = $iEvenDigits .substr($s12Digits,(2* $i)+1,1);

   my $iDblEven =2* $iEvenDigits;
   my $iSumDblEvens =0;for(my $i =0; $i <length($iDblEven); $i++)
      $iSumDblEvens = $iSumDblEvens +substr($iDblEven,$i,1);

   my $iUnitVal = $iDblEven;
   my $iFinalBase = $iSumOdd + $iSumDblEvens;

   $iLastDigit =10-substr($iFinalBase,-1);if($iLastDigit ==10)
      $iLastDigit =0;return $iLastDigit;

Sección de Reseñas y Valoraciones

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *