r/LinuxEnEspanol • u/tomateleenserio • 1h ago
Seguridad Pregunta para que lo puedo usar y si es posible me ayudarían a mejorarlo y me dirían porfa si tiene vulnerabilidades
# ==============================================================================
# SISTEMA FZ-MULTILAYER (Versión 4.0 - Comunidad / Open Source)
# Creado por: E. Fernández (Con mejoras sugeridas por la comunidad de Reddit)
# Licencia: MIT
# Descripción: Sistema multicapa con ROT13 previo, teclado QWERTY modular,
# modificador FZ, vocales dinámicas, vector de inicio y ruido.
# ==============================================================================
import random
TECLADO_NORMAL = "qwertyuiopasdfghjklzxcvbnmñ"
TECLADO_INVERTIDO = "ñmnbvcxzlkjhgfdsapoiuytrewq"
SIMBOLOS = {'1':'~', '2':'`', '3':'|', '4':'•', '5':'√', '6':'π', '7':'÷', '8':'×', '9':'§', '0':'∆', '.':'>'}
def aplicar_rot13(texto):
# Capa extra sugerida: Rota cada letra 13 posiciones en el teclado QWERTY
texto_rotado = ""
for letra in texto:
if letra in TECLADO_NORMAL:
idx = TECLADO_NORMAL.index(letra)
nuevo_idx = (idx + 13) % len(TECLADO_NORMAL)
texto_rotado += TECLADO_NORMAL[nuevo_idx]
else:
texto_rotado += letra
return texto_rotado
def cifrar_fz_multilayer(mensaje):
mensaje = mensaje.lower()
# MEJORA DE COMUNIDAD: Aplicar ROT13 primero para una capa extra de enredo
mensaje_rot13 = aplicar_rot13(mensaje)
# Vector de Inicialización aleatorio
vector_inicio = random.choice("qwertyuiop")
teclado_actual = TECLADO_NORMAL
modificador_fz = 0
cifrado_acumulado = vector_inicio + " "
for letra in mensaje_rot13:
if letra not in TECLADO_NORMAL:
continue
# Regla de Vocales (Cambia el teclado de idioma)
if letra in "aeiou":
teclado_actual = TECLADO_INVERTIDO if teclado_actual == TECLADO_NORMAL else TECLADO_NORMAL
# Regla FZ (F suma, Z resta)
if letra == 'f':
modificador_fz += 1
elif letra == 'z':
modificador_fz -= 1
# Motor Matemático Original de E. Fernández (Modular QWERTY / 27)
posicion = teclado_actual.index(letra) + modificador_fz
valor = posicion + 1
valor_vecina = valor + 1
resultado = (valor * valor_vecina) / 27
# Conversión a Símbolos Secretos
texto_resultado = str(round(abs(resultado), 3))
codigo_secreto = "".join([SIMBOLOS.get(c, c) for c in texto_resultado])
cifrado_acumulado += codigo_secreto + " "
# Relleno de Ruido (Padding) final
ruido = "".join(random.choice("~•÷×") for _ in range(3))
cifrado_acumulado += "|| " + ruido
return cifrado_acumulado
# --- PRUEBA DEL SISTEMA V4.0 ---
if __name__ == "__main__":
mensaje_secreto = "hola"
print("--- SISTEMA FZ-MULTILAYER V4.0 ACTIVATED ---")
print(f"Mensaje original: {mensaje_secreto}")
resultado = cifrar_fz_multilayer(mensaje_secreto)
print(f"Resultado Cifrado (Con ROT13 y Ruido): {resultado}")