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; } }