La Codificación

Premisa


Durante la creación de la matriz, podremos elegir cuántos minicódigos asignar a cada carácter codificable.

📌 Ejemplo práctico
Si elegimos generar una matriz con 10 minicódigos, cada carácter recibirá 10 minicódigos únicos y aleatorios.
Durante la codificación del texto, el software asignará uno de estos minicódigos a cada aparición del carácter correspondiente.
⚠️ Pero atención: un mismo minicódigo solo puede utilizarse una vez.

🚫 ¿Qué pasa si los minicódigos no son suficientes?
Si un carácter aparece más veces en el texto que los minicódigos disponibles, la codificación fallará.

Ejemplo:

Hemos creado una matriz con 10 minicódigos.
Queremos codificar un texto que contiene 11 letras “c”.
❌ La codificación no se podrá completar, porque a la undécima “c” no se le podrá asignar un minicódigo.

El archivo matrix.json


Para poder codificar un texto, primero debemos asegurarnos de que en la carpeta de trabajo esté presente el archivo matrix.json de la matriz que deseamos utilizar.
Este archivo es indispensable para la creación del código.

Creación del código


En la sección Codificar un texto, haz clic en Codificar.

En la ventana que se abrirá, introduce el texto a codificar. El texto puede ser:

- Escrito manualmente.
- Pegado mediante copiar y pegar.


Una vez introducido el texto, haz clic en Confirmar.

El sistema generará automáticamente el código, que se guardará localmente en el sistema y podrá visualizarse en la carpeta de trabajo con el nombre code.txt

Cómo funciona la codificación


Con Cyphersol, a cada letra mayúscula, minúscula, acentuada, carácter especial, número, símbolo, espacio y salto de línea se le pueden asignar distintos minicódigos aleatorios y únicos.
Si se crea una matriz con la configuración predeterminada (100 columnas), se podrán asignar hasta 100 minicódigos aleatorios y únicos por carácter.
Sin embargo, durante la generación de la matriz, se puede optar por crear hasta un máximo de 16382 columnas.

El minicódigo asignado a cada carácter será el resultado de una concatenación.
Lo que se concatena es el contenido de cualquier celda de la zona B con los números de la celda (estrictamente de la misma columna) correspondientes a la fila del carácter que se desea codificar.

Ejemplo de codificación basado en la siguiente matriz:

Immagine 1


Für dieses Beispiel verwenden wir den Matrizenabschnitt auf diesem Bild, auf dem nur die Großbuchstaben vollständig sichtbar sind, da es sich um ein Bild handelt.
Angenommen, wir möchten den Buchstaben H codieren.
Dazu nehmen wir den Inhalt einer Zelle aus dem Bereich A, und zwar in diesem Beispiel aus der Spalte E.
Der Inhalt dieser Zelle ist Dzby.
Danach nehmen wir – ebenfalls aus derselben Spalte – die Zahl, die der Zeile des zu codierenden Zeichens entspricht, also für H die Zahl 41.
Der Minicode für dieses Zeichen ist Dzby41 (siehe Bild unten).

Immagine 1


Angenommen, wir möchten nun das Wort HELLO codieren.
Wir müssen 5 Großbuchstaben codieren.
Sehen wir uns einige mögliche Ergebnisbeispiele an:


Snd206N170Ua150Tg24Qp109

Tg90Nqj124Usr114Esqs106Ua172

Qjhb149Qjhb145K88Tg24J27

V35N170S154Ua150Ua172




Für eine genauere Kontrolle findest du am Ende dieser Seite die Links zum Herunterladen der Matrix im xlsx- und json-Format.
Für die App benötigst du nur die json-Datei.
Sobald du die Matrix hast, erstelle eine Textdatei und benenne sie in code.txt um, gib die Beispielcodes ein, importiere die Datei code.txt in den Arbeitsordner und dekodiere sie anschließend mit der App.



Todos estos códigos son el resultado de la misma palabra HELLO.
En este caso estamos codificando una sola palabra, pero como veremos, la función de concatenación de minicódigos no distingue entre palabras simples o frases complejas con caracteres especiales, puntuaciones, espacios o saltos de línea.
Cada uno se codificará y concatenará de la misma manera.
Por ahora, analicemos el resultado del primero de los 4 ejemplos de codificación de la palabra HELLO:


Snd206N170Ua150Tg24Qp109


Aquí está el resultado detallado de la codificación de los caracteres individuales:

Carácter Concatenación Código
H = Snd + 206 = Snd206
E = N + 170 = N170
L = Ua + 150 = Ua150
L = Tg + 24 = Tg24
O = Qp + 109 = Qp109

Este procedimiento de decodificación también se puede realizar manualmente (aunque llevará mucho más tiempo).
Cada carácter codificado dentro de una palabra o frase comenzará con una letra mayúscula y terminará con el último número antes de otra letra mayúscula.
En el ejemplo que acabamos de ver, podemos comprobarlo visualizando los minicódigos concatenados, diferenciados por colores distintos:


Snd206N170Ua150Tg24Qp109


La codificación y decodificación manual podría plantear una duda a los más atentos de vosotros.
Está bien para los caracteres, pero ¿qué pasa con la codificación manual de los espacios y los saltos de línea?
No entraré en los detalles técnicos que me permitieron lograr la codificación y decodificación de espacios y saltos de línea a nivel de software (podéis analizar el código para ello), pero la solución a nivel de software también es la solución para la identificación manual.
Básicamente, la solución fue asignar un símbolo tanto al espacio como al salto de línea.
Más precisamente, un ideograma.
para los espacios, se debe hacer referencia al símbolo (fila 2 de la matriz)
para los saltos de línea, se debe hacer referencia al símbolo (fila 3 de la matriz).
Ahora analicemos un texto en el que hay un espacio.
Codifiquemos la frase HELLO WORLD.

Aquí tienes uno de los posibles resultados:


Dzby41Esqs94Zuu74Rw179R109Efd32Y57Qjhb45Wu131Np18Rgdf139


Centrémonos primero en el minicódigo Efd32.
Corresponde a la columna F de la matriz y al carácter , que representa el espacio entre las palabras HELLO y WORLD.
La única información que se puede obtener analizando un minicódigo de este tipo, donde cada carácter, espacio o salto de línea se codifica de forma única, es el número de caracteres de la frase. Pero no se podrá saber cuántas palabras contiene.


Aquí está el resultado detallado de la codificación de cada carácter y del espacio:

Carácter Concatenación Código
H = Dzby + 41 = Dzby41
E = Esqs + 94 = Esqs94
L = Zuu + 74 = Zuu74
L = Rw + 179 = Rw179
O = R + 109 = R109
Spazio = Efd + 32 = Efd32
W = Y + 57 = Y57
O = Qjhb + 45 = Qjhb45
R = Wu + 131 = Wu131
L = Np + 18 = Np18
D = Rgdf + 139 = Rgdf139
El espacio y el salto de línea


Como ya se ha dicho, tanto los espacios como los saltos de línea se codifican exactamente igual que cualquier otro carácter.
Lo importante es entender que siempre se codifican.
Si pongo un solo espacio entre dos palabras, se codificará una vez.
Si pongo 10 espacios, se codificarán todos con 10 minicódigos únicos.
Y la misma lógica se aplica a los saltos de línea, estén donde estén en el archivo.

Descargar la matriz de ejemplo para este tutorial





En la siguiente página de la guía, comprenderemos cómo funciona la decodificación de un código.