TENGO ESTOS PSEUDOCODIGOS QUE ME PASARON EN MI TRABAJO Y NO SE COMO HACERLOS EN PHP
ACA ESTA EL PRIMERO (VERHOEFF)
1)
FUNCION ObtenerVerhoeff(CADENA Cifra) : ENTERO
NUMERO Mul[10][10] = ( (0,1,2,3,4,5,6,7,8,9),
(1,2,3,4,0,6,7,8,9,5),
(2,3,4,0,1,7,8,9,5,6),
(3,4,0,1,2,8,9,5,6,7),
(4,0,1,2,3,9,5,6,7,8),
(5,9,8,7,6,0,4,3,2,1),
(6,5,9,8,7,1,0,4,3,2),
(7,6,5,9,8,2,1,0,4,3),
(8,7,6,5,9,3,2,1,0,4),
(9,8,7,6,5,4,3,2,1,0) )
NUMERO Per[8][10] = ( (0,1,2,3,4,5,6,7,8,9),
(1,5,7,6,2,8,3,0,9,4),
(5,8,0,3,7,9,6,1,4,2),
(8,9,1,6,0,4,3,5,2,7),
(9,4,5,3,1,2,6,8,7,0),
(4,2,8,6,5,7,3,9,0,1),
(2,7,9,3,8,0,6,4,1,5),
(7,0,4,6,9,1,3,2,5,8) )
NUMERO Inv[10] = (0,4,3,2,1,5,6,7,8,9) , Check = 0, I
CADENA NumeroInvertido[]
INICIO
NumeroInvertido = InvierteNumero(Cifra)
PARA I = 0 HASTA (LargoNumero(NumeroInvertido) – 1) HACER
Check = Mul[Check, Per[((I + 1) MODULO 8), A_Numero(NumeroInvertido[I])]]
FIN PARA
RETORNAR Inv[Check]
FIN FUNCION
ejemplos
1. DigitoVerificador = ObtenerVerhoeff(12083) -> Resultado: DigitoVerificador = 7
2. DigitoVerificador = ObtenerVerhoeff(0) -> Resultado: DigitoVerificador = 4
3. DigitoVerificador = ObtenerVerhoeff(1810) -> Resultado: GigitoVerificador = 8
4. DigitoVerificador = ObtenerVerhoeff(04) -> Resultado: GigitoVerificador = 7
ACA ESTA EL SEGUNDO (base64)
2)
FUNCION ObtenerBase64(ENTERO Numero) : CADENA
CARACTER Dicionario[64] = ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J',
'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T',
'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd',
'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n',
'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x',
'y', 'z', '+', '/' )
ENTERO Cociente = 1, Resto
CADENA Palabra = “”
INICIO
MIENTRAS (Cociente > 0) HACER
Cociente = Numero / 64
Resto = Numero MODULO 64
Palabra = Diccionario[Resto] + Palabra
Numero = Cociente
FIN MIENTRAS
RETORNAR Palabra
FIN FUNCION
Ejemplos:
1. Palabra = ObtenerBase64(934598591) -> Resultado: Palabra = "tjDU/"
2. Palabra = ObtenerBase64(434376710) -> Resultado: Palabra = "Pv106"
3. Palabra = ObtenerBase64(204986118) -> Resultado: Palabra = "CDzS6"
GRACIAS!