{"id":172,"date":"2006-07-17T01:06:05","date_gmt":"2006-07-16T23:06:05","guid":{"rendered":"http:\/\/www.loeda.net\/blog\/index.php\/2006\/07\/17\/el-imei-de-mi-telefono-es-correcto\/"},"modified":"2015-02-24T22:01:33","modified_gmt":"2015-02-24T21:01:33","slug":"el-imei-de-mi-telefono-es-correcto-con-mssql-tsql-luhn","status":"publish","type":"post","link":"https:\/\/www.loeda.net\/bitacora\/2006\/07\/17\/el-imei-de-mi-telefono-es-correcto-con-mssql-tsql-luhn\/","title":{"rendered":"\u00bfEl IMEI de mi telefono es correcto? (Algoritmo de Luhn)?"},"content":{"rendered":"<p>El <a href=\"http:\/\/en.wikipedia.org\/wiki\/IMEI\" target=\"_blank\">Imei<\/a> de un tel\u00e9fono m\u00f3vil lo identifica de igual manera que el <a href=\"http:\/\/es.wikipedia.org\/wiki\/DNI\" target=\"_blank\">D.N.I.<\/a> identifica cada Espa\u00f1ol.<\/p>\n<p>Pero \u00bfcomo saber como un Imei es valido?, la respuesta es el llamado algoritmo de <a href=\"http:\/\/en.wikipedia.org\/wiki\/Luhn_algorithm\" target=\"_blank\">Luhn<\/a> , dicho algoritmo se utiliza para validar por ejemplo tarjetas de cr\u00e9dito.<\/p>\n<p>Utilizando la implementaci\u00f3n en TSQL del este algoritmo lo he adaptado para verificar el Imei de un tel\u00e9fono m\u00f3vil.<\/p>\n<p>El siguiente procedimiento es el algoritmo de Luhn<\/p>\n<p>[code language=\u00bbsql\u00bb]<br \/>\ncreate procedure luhn<br \/>\n\u00a0\u00a0\u00a0 @purportedCC varchar(15),<br \/>\n\u00a0\u00a0\u00a0 @resultado int output<br \/>\nas<br \/>\n\u00a0\u00a0\u00a0 declare @suma int<br \/>\n\u00a0\u00a0\u00a0 declare @nDigits int<br \/>\n\u00a0\u00a0\u00a0 declare @digit int<br \/>\n\u00a0\u00a0\u00a0 declare @parity int<br \/>\n\u00a0\u00a0\u00a0 declare @i int<\/p>\n<p>\u00a0\u00a0\u00a0 set @suma=0<br \/>\n\u00a0\u00a0\u00a0 set @i=0<br \/>\n\u00a0\u00a0\u00a0 set @digit=0<br \/>\n\u00a0\u00a0\u00a0 set @resultado=0<br \/>\n\u00a0\u00a0\u00a0 set @nDigits=len(@purportedCC)<br \/>\n\u00a0\u00a0\u00a0 set @parity=@nDigits % 2<\/p>\n<p>\u00a0\u00a0\u00a0 while @i &gt;=@nDigits-1<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 begin<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 set @digit=convert(int,substring(@purportedCC,@i+1,1))<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 if @i % 2 = @parity set @digit=@digit*2<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 if @digit&gt;9 set @digit=@digit-9<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 set @suma=@suma+@digit<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 set @i=@i+1<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 end<br \/>\n\u00a0\u00a0\u00a0 set @resultado=@suma % 10<br \/>\nreturn (@resultado)<br \/>\n[\/code]<\/p>\n<p>Su uso es bastante f\u00e1cil.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>El Imei de un tel\u00e9fono m\u00f3vil lo identifica de igual manera que el D.N.I. identifica cada Espa\u00f1ol. Pero \u00bfcomo saber como un Imei es valido?, la respuesta es el llamado algoritmo de Luhn , dicho algoritmo se utiliza para validar por ejemplo tarjetas de cr\u00e9dito. Utilizando la implementaci\u00f3n en TSQL del este algoritmo lo he [&hellip;]<\/p>\n","protected":false},"author":12,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[755],"tags":[786,789,787,790,788],"class_list":["post-172","post","type-post","status-publish","format-standard","hentry","category-software","tag-algoritmo","tag-imei","tag-mssql","tag-telefonia","tag-tsql","author-emilio"],"_links":{"self":[{"href":"https:\/\/www.loeda.net\/bitacora\/wp-json\/wp\/v2\/posts\/172","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.loeda.net\/bitacora\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.loeda.net\/bitacora\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.loeda.net\/bitacora\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/www.loeda.net\/bitacora\/wp-json\/wp\/v2\/comments?post=172"}],"version-history":[{"count":1,"href":"https:\/\/www.loeda.net\/bitacora\/wp-json\/wp\/v2\/posts\/172\/revisions"}],"predecessor-version":[{"id":5492,"href":"https:\/\/www.loeda.net\/bitacora\/wp-json\/wp\/v2\/posts\/172\/revisions\/5492"}],"wp:attachment":[{"href":"https:\/\/www.loeda.net\/bitacora\/wp-json\/wp\/v2\/media?parent=172"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.loeda.net\/bitacora\/wp-json\/wp\/v2\/categories?post=172"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.loeda.net\/bitacora\/wp-json\/wp\/v2\/tags?post=172"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}