Inicio Apuntes FPApuntes DAWEjercicio 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.

Resumen de privacidad
cookies entreunosyceros

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible.

La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudarnos a comprender qué secciones de la web encuentras más interesantes y útiles.

Nunca almacenamos información personal de ningún tipo.

Tienes toda la información sobre privacidad, derechos legales y cookies en nuestra página sobre la política de privacidad o en la página sobre nuestra política de cookies.

Cookies necesarias

Las cookies estrictamente necesarias tiene que activarse siempre para que podamos guardar tus preferencias de ajustes de cookies.

Si desactivas esta cookie no podremos guardar tus preferencias. Esto significa que cada vez que visites esta web tendrás que activar o desactivar las cookies de nuevo.

Cookies de terceros

Esta web utiliza las siguientes cookies adicionales:

- Mailchimp: Recordar si ya estás suscrito al boletín de noticias y sino ofrecértelo al salir.

- Accesibilidad: Para saber tus ajustes de accesibilidad en cada visita.

- Comentarios: Saber si has leído y aceptado nuestra política de privacidad a la hora de dejar un comentario en la web.

- Google Analytics: Localización para recopilar información anónima tal como el número de visitantes del sitio, o las páginas más populares.

- Goggle Adsense: Anuncios personalizados según tu geolocalización y preferencias.

Dejar estas cookies activadas nos permite mejorar nuestra web.

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.