El programa Text Recoded ofrece las siguientes operaciones útiles sobre datos textuales determinados:
- Codificación, decodificación y recodificación entre codificaciones de texto plano, hexadecimal y Base64.
- Cifrado y descifrado mediante cifrado César.
- Producir hashes de datos textuales sin formato y formateados con el fin de validar su integridad.
Se puede utilizar la codificación de datos textuales en codificación hexadecimal o Base64 para garantizar que los datos textuales originales no se alteren debido a que un medio de almacenamiento o transmisión los maneje en un juego de caracteres incompatible.
El cifrado que utiliza el cifrado César, que es un cifrado de sustitución simple, se puede utilizar en muchos casos cuando los datos textuales deben permanecer ocultos para la gente corriente que normalmente no se molesta en descifrarlos. Sin embargo, no es adecuado para proteger datos confidenciales, ya que pueden descifrarse fácilmente con la tecnología actual.
El procedimiento de cifrado y descifrado implementado por el programa Text Recoded se explica en el siguiente ejemplo utilizando “TEXTO” como entrada y “prueba” como clave:
Entrada: TEXTO (T=84, E=69, X=88, T=84)
Clave: prueba (t=116, e=101, s=115, t=116)
Procedimiento: la entrada + la clave
Salida en decimal: (200,170,203, 200)
Salida en hexadecimal: C8AACBC8
Descifrar es todo lo contrario de lo anterior, es decir, la salida cifrada: la clave. En nuestro caso será:
C8AACBC8 - prueba = TEXTO
El programa Text Recoded recibe y entrega entrada y salida de datos textuales, así como la clave para cifrar, en codificación UTF-8 que admite todo el conjunto de caracteres Unicode, que admite caracteres de casi todos los sistemas de escritura del mundo.
No hay límite para la longitud de entrada excepto la memoria disponible. La clave también puede tener cualquier longitud; sin embargo, si es más larga que la entrada, se trunca a la longitud de entrada, se divide en fragmentos de la longitud de entrada y luego los valores de los fragmentos adicionales se agregan al primer fragmento.
La salida de cifrado puede estar en codificación hexadecimal o Base64. Esta versión no admite el trabajo con datos binarios.
Con el fin de garantizar la integridad de una salida determinada, también es posible incluir sus hashes en el cuadro Salida, tanto para operaciones de codificación como de cifrado.
Tenga en cuenta que los hashes producidos son de tres tipos que se explican a continuación.
El hash para TODO el contenido textual se produce para todo el contenido de los datos textuales especificados, incluidos los espacios vacíos como espacios en blanco, tabulaciones y nuevas líneas, si las hubiera.
El hash para el contenido textual FMT formateado se produce para el texto y sus espacios en blanco internos y nuevas líneas, excluyendo todas las líneas vacías y espacios en blanco circundantes.
El hash para el contenido textual RAW se produce solo para el texto en sí, excluyendo todo tipo de espacios vacíos: líneas vacías, espacios en blanco, tabulaciones y líneas nuevas.
Para validar la integridad de datos textuales dados en los casos en los que se requiere un tipo de hash no RAW, la longitud de las líneas, el número de líneas y el tipo de caracteres de nueva línea son importantes. Esto se debe a que Windows usa códigos de caracteres #13#10 para almacenar nuevas líneas, mientras que el sistema operativo Linux usa solo el código de caracteres #10 para almacenar nuevas líneas. Por lo tanto, si se produce un hash para datos textuales en un sistema operativo pero es necesario validarlo en otro, se debe configurar una opción adecuada. Para ello, existe un cuadro de selección para elegir entre caracteres de nueva línea de Windows y Linux al generar hashes.