Inicio Apuntes FPApuntes DAW Ejercicio Básico 27 PHP: Encriptación de texto usando clases

Ejercicio Básico 27 PHP: Encriptación de texto usando clases

Publicado por entreunosyceros
Publicado el: Última actualización:

AVISO: Esta entrada tiene más de dos años desde su publicación. Es posible que el contenido esté desactualizado.

En el post de hoy, voy a dejar un nuevo ejercicio de PHP, en el que se realizará una encriptación de texto, utilizando clases (continuamos con la orientación a objetos), siguiendo las especificaciones que se muestran en las líneas de debajo …

Se creará una clase que permita encriptar y desencriptar texto, haciendo uso de la suma sin acarreo (ver la nota al final del enunciado). Esta clase sólo contendrá una única propiedad (atributo o variable de instancia): la clave. Todo se realizará en dos archivos (index.php y cifrar.php).

El archivo cifrar.php tendrá además los siguientes métodos:

1. claveAlea: asignará a la propiedad clave un valor entero aleatorio entre 0 y 255 (ambos incluídos).
2. digito: recibirá dos enteros y devolverá el dígito del primer argumento que está en la posición indicado por el segundo. Las unidades se consideran la posición cero. Por ejemplo: digito (345, 1)  =  4
3. sumaSinAcarreo: recibirá dos argumentos enteros (se sabe que sólo tendrán un dígito cada uno de ellos) y devolverá suma de ambos sin acarreo (un solo dígito, por tanto): Por ejemplo: sumaSinAcarreo (3,8) = 1
4. numDigitos: recibirá un argumento entero e indicará cuántos dígitos contiene.
5. encripta: recibirá un texto y devolverá otro con los códigos ASCII encriptados y separados por una barra inclinada (“/”). Cada código se encripta sumándole la clave con el método del punto anterior (sumaSinAcarreo). Por ejemplo: suma(“HOLA”) = “22/29/26/15”.
6. claveDesc: devolverá el valor que permitirá desencriptar el texto encriptado. Se calcula a partir de la clave: suma (999 – clave, 111). Por ejemplo, si la clave es 123, suma (999 – clave, 111) = 987
7. desencripta: recibirá el texto encriptado y desencriptará cada código (recuérdese que el separador de códigos es la barra inclinada /) aplicándole el método suma a cada uno con la clave de desencriptado calculada con el método anterior. Cada código ASCII recuperado ha de convertirse al carácter correspondiente.

Una vez montada toda la estructura de la clase habrá que modificar lo anterior para que la generación de la clave aleatoria se haga de forma automática en el momento de crear el objeto.
Nota 1: Se necesitarán las siguientes funciones (puede que no todas, puede que alguna más): strlen, ord, chr, substr, floor, max y
explode .
Nota 2: Suma de dos dígitos sin acarreo: Es igual a calcular el módulo de su suma y 10: (digito1 + digito2) % 10


 

index.php


cifrar.php

También te puede interesar ...

Deja un comentario

* Al utilizar este formulario, aceptas que este sitio web almacene y maneje tus datos.

Adblock Detectado!!

Ayúdanos deshabilitando la extensión AdBlocker de tu navegador para visitar esta web.
Si no sabes hacerlo en Chrome, consulta el siguiente enlace. Si utilizas Firefox, puedes consultar este otro enlace.
Esto mejorará tu experiencia en este sitio web.