-
Notifications
You must be signed in to change notification settings - Fork 47
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Dudas sobre encriptación #311
Comments
¡Hola @FelipeDiazS! 👋 Respecto a tu primera duda, es correcto lo que dices: si quieres enviar un diccionario, primero debes serializarlo y obtendrás un objeto de tipo string al utilizar el módulo Para el último paso antes de encriptar, recuerda que si conviertes un string a bytes debes usar UTF-8 para no tener problemas con caracteres especiales 👀. Sobre tu segunda duda, el orden es un poco distinto a como mencionas. Primero debes encriptar el mensaje y luego codificarlo según la estructura de bloques dada. Entonces, en el ejemplo del enunciado digamos que, por ejemplo, querías enviar un diccionario. Tendrás que seguir los pasos que mencioné en el primer párrafo de esta respuesta para poder encriptar dicho diccionario. Finalmente, el resultado de dicha encriptación fue una cadena de 210 bytes. De esa forma, continúas aplicando el protocolo de envío tal como dice el enunciado. Por lo que la encriptación viene antes de armar los bloques. Espero haber aclarado tus dudas 😃, si no quedó muy claro puedes volver a preguntar. |
Hola! |
Hola @Francisco-Aguilera-xd, la encriptación ocurre al comienzo y solo para el mensaje que deseas enviar, por lo que no debes encriptar el largo del mensaje ni el número de bloque. Creo que puede serte útil pensarlo de la siguiente forma:
O sea, la encriptación va separada de la estructura de codificación, por lo que la codificación recibe un mensaje pero no le interesa si es que ese mensaje está encriptado o no, solamente sabe que el mensaje debe ser codificado con bloques para que el receptor pueda decodificarlo. Luego, si es que el mensaje estaba encriptado entonces el receptor se encargará de desencriptarlo después de haberlo decodificado. Espero haya quedado un poco más claro, cualquier cosas me comentas 😄 |
Hola, tengo un problema yo con esto, y es que cuando lo convierto a byte, los carácteres no aparecen en estilo "\xnn" o algo así, sino que aparece el mismo string, pero tipo byte (si le pongo type(dict)), y no se que hacer con ello :( |
Hola @DonMarto, tal como se menciona en esta respuesta de la issue 303, solamente deben intercambiar los bytes \x03 y \x05 si es que aparecen. Sobre el otro tema, no entiendo cual es el problema, ya que no es necesario que aparezcan bytes de la forma hexadecimal. Recuerda de la parte Input/Output de la semana 11 de contenidos que:
Por lo que puedes tener un objeto tipo bytes que sea por ejemplo Espero haber aclarado tu duda 😀 |
Prerrequisitos
(Marcar colocando una X entre los corchetes los ítems que ya hiciste, así: "[X]")
Duda
Hola, tengo algunas dudas sobre la encriptación de los mensajes.
La primera es sobre la serialización. Por lo que he visto en los contenidos, cuando uno serializa con json, el mensaje no se transforma a bytes, entonces como lo hago para hacer todo lo que se me pide después? o no es necesario serializar? Hay otra issue con una pregunta similar a esta pero no la entendí la verdad.
La segunda es sobre la forma de envío. Por lo que entendí, lo primero que se hace es obtener el largo del mensaje (210 bytes en el ejemplo del enunciado). Después, el mensaje se divide en bloques de 80 bytes, y a cada uno de estos bloques se le aplica esa encriptación ABC y se le agrega un byte n al final (quedarían bloques de 81 bytes?). Después, cuando se juntan todos los bloques, se agregan antes de cada uno 4 bytes que representan el número del bloque. Mi duda es, considerando todas esas cosas que se deben agregar, no me queda un largo mayor al que se obtuvo en un principio? (considerando esos agregados y la suma de 0s que se le hace al último bloque el largo debería ser de 255) No me queda muy claro como funciona esto y si la encriptación ABCn realmente se hace donde dije antes.
De antemano gracias :)
The text was updated successfully, but these errors were encountered: