Hola gente, quería compartir con uds un método de cifrado que estoy armando junto con un amigo, basado en Arrays, para utilizar en bases de datos SQL con PHP y lectura/escritura de archivos con C++.
Quisieramos saber qué opinan de éste método de cifrado y qué podría mejorarse.
Por el momento sirve sólo para datos alfanuméricos, lo cual hace que sea básico (es sólo para tener una base). Los caracteres están identificados con un número de 2 dígitos en una tabla de 12 x 3 (36 caracteres) tomando por igual a las mayúsculas y a las minúsculas.
10 11 12 13 14 15 16 17 18 19 20 21
A B C D E F G H I J K L
22 23 24 25 26 27 28 29 30 31 32 33
M N O P Q R S T U V W X
34 35 36 37 38 39 40 41 42 43 44 45
Y Z 0 1 2 3 4 5 6 7 8 9
Al encriptarlo, se debe pasar cada caracter de cada palabra a los siguiente valores teniendo en cuenta la tabla anterior:
0 1 2 3 4 5 6 7 8 9
Z B P K G Q V H C A
Nota: A partir de ahora, tomaremos la palabra "ASD" como ejemplo.
Para pasar un caracter a valor cifrado, se debe separar un dígito del otro, como por ejemplo:
ASDS = ?
A = B + Z
S = P + C
D = B + K
? = B + Z + P + C + B + K
Cuando se hayan pasado todos los caracteres, se deben eliminar sólo los caracteres repetidos, pero obteniendo la distancia del siguiente valor repetido a partir del primero, y luego se escribe el número de la distancia delante del primer valor cifrado, es decir...
ASD = ?
? = B + Z + P + C + B + K
? = B + Z + P + C + 4 + K
? = 4B + Z + P + C + K
Por último la palabra cifrada quedaría de la siguiente manera:
ASD = 4BZPCK
Les dejo un par de ejemplos para que vean...
root = PHPGPGPA = 2PH2G2PA
linux = PBBCPKKZKK = 4P1BC1KZ1K
bunker = BBKZPKPZBGPH = 1B3K4Z2PBGPH
flug = BQPZKZBV = 6BQP2ZKV
produkt = PQPHPGBKKZPZPA = 2PQH6PGB1K2ZPA
trinken = PAPHBCPKPZBGPK = 2PAH6BC2P6KZGP
schnee = PCBPBHPKBGBG = 3PC2BHPK2B2G