PHP – Encriptar – Encriptar transposicion sin clave
Función de encriptar y desenciptar en forma de transposicion, (reemplazando unos valores por otros de forma ordenada) y sin necesitar ningún tipo de clave.
El resultado es devuelto en base64.
Mediante esta encriptación el mismo texto siempre devuelve el mismo texto encriptado.
/**
* Class HelperEncriptar
*/
abstract class HelperEncriptar
{
/**
* Encriptación por trasposición
*
* @param string $str_plano
*
* @return string
*/
public static function encriptarTransposicion( $str_plano )
{
$len = strlen( $str_plano );
$str_encrypted = "";
for ( $position = 0; $position < $len; $position++ ) {
$key_to_use = ( ( $len_str_message + $position ) + 1 );
$key_to_use = ( 255 + $key_to_use ) % 255;
$byte_to_be_encrypted = substr( $str_plano, $position, 1 );
$ascii_num_byte_to_encrypt = ord( $byte_to_be_encrypted );
$xored_byte = $ascii_num_byte_to_encrypt ^ $key_to_use;
$encrypted_byte = chr( $xored_byte );
$str_encrypted .= $encrypted_byte;
}
return base64_encode( $str_encrypted );
}
/**
* Desencriptación por trasposición
*
* @param string $str_encriptado
*
* @return string
*/
public static function desencriptarTransposicion( string $str_encript )
{
$str_encriptado = base64_decode( $str_encript );
$len = strlen( $str_encript );
$str_desencrypt = "";
for ( $position = 0; $position < $len; $position++ ) {
$key_to_use = ( ( $len_str_message + $position ) + 1 );
$key_to_use = ( 255 + $key_to_use ) % 255;
$byte_to_be_encrypted = substr( $str_encript, $position, 1 );
$ascii_num_byte_to_encrypt = ord( $byte_to_be_encrypted );
$xored_byte = $ascii_num_byte_to_encrypt ^ $key_to_use;
$byte = chr( $xored_byte );
$str_desencrypt .= $byte;
}
return $str_desencrypt;
}
}
