-
Notifications
You must be signed in to change notification settings - Fork 0
/
enigma_rojas1.php
executable file
·49 lines (43 loc) · 1.3 KB
/
enigma_rojas1.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php
class Enigma_rojas1{
private $clave;
function __construct($clave){
$this->clave=$clave;
}
function cifrar($texto){
$resultado='';
for($i=0;$i<strlen($texto);$i++){
$caracter=substr($texto, $i,1);
$caracterClave=substr($this->clave, ($i%strlen($this->clave))-1,1);
$caracter=chr(ord($caracter)+ord($caracterClave));
$resultado.=$caracter;
}
return base64_encode($resultado);
}
function descifrar($texto){
$resultado='';
$texto=base64_decode($texto);
for($i=0;$i<strlen($texto);$i++){
$caracter=substr($texto, $i,1);
$caracterClave=substr($this->clave, ($i%strlen($this->clave))-1,1);
$caracter=chr(ord($caracter)-ord($caracterClave));
$resultado.=$caracter;
}
return $resultado;
}
}
//Definimos la clave a usar
$clave2="sometimes we break the unbreakable, sometimes / can we ever have what we had then?
friendship unbreakable";
//Instanciamos la clase Enigma3
$codificador=new Enigma_rojas1($clave2);
//Texto de prueba
$texto="1234";
//Llamamos al método cifrar
$texto_codificado=$codificador->cifrar($texto);
print $texto_codificado.'<br>';
//Llamamos al método descifrar
$texto_decodificado=$codificador->descifrar($texto_codificado);
print $texto_decodificado.'<br>';
//$texto_decodificado y $texto deben ser exactamente iguales
?>