Buen dia, estoy haciendo un algoritmo para el calculo de unas claves y
tengo unas dudas de como hacerlo.
Tengo un NOMBRE, convierto cada caracter en su valor ASCII y le sumo
cierto valor en funcion del caracter: ejemplo:
nombre = “PEDRO”.split(//)
nombre.hech do |x|
#Si Caracter esta entre la A-I sumo 10 al resultado Ascii
caracter = ?x + 10
#Si Caracter esta entre la J-N sumo 20 al resultado Ascii
caracter = ?x + 20
#Si Caracter esta entre la Ñ-Z sumo 30 al resultado Ascii
caracter = ?x + 30
valor_final = valor_final + caracter
end
Alguna sugerencia, gracias
On Jun 26, 2008, at 6:08 PM, Luis M. wrote:
Buen dia, estoy haciendo un algoritmo para el calculo de unas claves y
tengo unas dudas de como hacerlo.
Habiendo tantos algorítmos para hacer esto (SHA1, MD5, etc.), por qué
implementarlo desde cero?
Tengo un NOMBRE, convierto cada caracter en su valor ASCII y le sumo
cierto valor en funcion del caracter: ejemplo:
Si es totalmente necesario, podrías hacer algo como:
cadena.upcase! # conviertes todo a mayuscula.
cadena.each_byte do |char|
case char
when 65…73 then hacer_algo #65 = A, 73 = I
…
end
end
Cada caracter tiene su valor ASCII así que lo único que debes hacer es
verificar los rangos. Para devolver este byte a caracter solo llamas
foo.chr.
–
Federico
Federico, gracias por tu comentario… lo que estoy tratando de hacer es
el caluclo de la HomoClave en el RFC de las Personas (Solo en Mexico),
es un Algoritmo que en Funcion del Nombre de La Persona me da 3
Caracteres (Numeros y Letras), tengo los pasos a Seguir mas no se si sea
un Algoritmo ya hecho el que se aplica en estos casos o sea algo que
Gobierno usa exclusivamente.
Saludos