-
Notifications
You must be signed in to change notification settings - Fork 0
/
codigo.py
39 lines (26 loc) · 939 Bytes
/
codigo.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
from string import ascii_letters, digits
from random import choice
CARACTERES = ascii_letters + digits
class Clave:
def __init__(self: object, longitud: int = 12) -> None:
"""..."""
self.__clave = self.__crear_clave(longitud)
def __crear_clave(self: object, longitud: int) -> str:
"""..."""
return "".join([choice(CARACTERES) for _ in range(longitud)])
def encriptado_rot_n(self: object, n: int) -> None:
"""..."""
nueva_cadena = ""
for caracter in self.__clave:
indice = CARACTERES.index(caracter)
indice_cambiado = (indice + n) % len(CARACTERES)
nueva_cadena += CARACTERES[indice_cambiado]
self.__clave = nueva_cadena
def __str__(self: object) -> str:
return f"Clave -> {self.__clave}"
clave = Clave()
print(clave)
clave.encriptado_rot_n(13)
print(clave)
clave.encriptado_rot_n(-13)
print(clave)