Clave murciélago
Dada una una palabra o frase a encriptar con la clave murciélago lo que se hace es sustituir cada letra que esté en la palabra murciélago con un número según la siguiente relación.
M U R C I E L A G O
0 1 2 3 4 5 6 7 8 9
Las letras que no se encuentren en la clave de encriptación no se convierten a dígitos numéricos.
Ejemplo
La palabra asombrado se convierte en 7s90b27d9.
ASOMBRADO
7S90B27D9
Código Python
Disponemos de dos opciones, una para encriptar y otra para desencriptar.Veamos el código en funcionamiento.
#Código murciélago. Clave criptográfica usada por los Scouts
# MURCIELAGO
# 0123456789
x=int(input('1 para encriptar'+'\n'+'2 para desencriptar'+'\n'))
texto=input('Escriba su palabra o frase: ').lower()
codigo=['m','u','r','c','i','e','l','a','g','o'] #es una lista
print("murcielago")
print("0123456789")
salida=''
if x==1:
for i in range(len(texto)):
if texto[i] in codigo:
salida+=str(codigo.index(texto[i]))
else:
salida+=texto[i]
if x==2:
for i in range(len(texto)):
if texto[i].isdigit():
salida+=codigo[int(texto[i])]
else:
salida+=texto[i]
print(salida)
Lo interesante de este código es que aprendemos algunas técnicas para el tratamiento de cadenas alfanuméricas. También aprendemos a movernos por los elementos de una lista en Python.
str1.index(str2)
Dada una cadena str1 y dada otra cadena str2, queremos saber en que posición de la cadena 1 se encuentra el texto de la cadena 2.
#veamos el uso de index con cadenas alfanuméricas
texto="Hola, esto es una prueba en Python"
cadena="es"
print(texto.index(cadena))
Respuesta = 6.
Recordemos que se empieza a contar en cero y que si la expresión 'es' está varias veces únicamente se considera la primera vez que aparece.
Coincidencias
¿Cómo detectar en Python las coincidencias entre dos listas?#vamos a detectar coincidencias de caracteres entre dos listas
A=['a','b','c','d','e','f','g','h']
B=['x','y','z','b','d','f','g','p','q','r']
coinciden = [ x for x in A if x in B ]
print(list(A))
print(list(B))
print(coinciden)
print('Existen ',len(coinciden),' coincidendias')
Puede consultar el siguiente post para ver otras formas de programar el algoritmo que nos permite encriptar y desencriptar con el código murciélago.