Cómo almacenar una representación de cadena hexadecimal en C ++ para usar en criptografía

-2

Pregunta de tarea

La pregunta completa es la siguiente:

Supongamos que le dicen que el cifrado de una sola vez del mensaje "ataque al amanecer" es 09e1c5f70a65ac519458e7e53f36 (las letras de texto plano están codificadas como ASCII de 8 bits y el texto cifrado dado está escrito en hexadecimal). ¿Cuál sería el cifrado de una sola vez del mensaje "ataque al atardecer" bajo la misma clave OTP?

A mi parecer, todo lo que tendrías que hacer es encontrar lo que es la representación hexadecimal de ataque al anochecer, agregarlo al mensaje de alba al amanecer y luego usar la clave para convertir el ataque al anochecer a un valor cifrado. Sin embargo, no sé cómo almacenar el valor hexadecimal en C ++ (o cualquier otro idioma). Esto es lo que pensé que harías: string attackAtDawn = 61747461636b206174206461776e;

    
pregunta Mike 17.07.2014 - 21:05
fuente

1 respuesta

1

Querrá obtener una imagen clara de lo que significa "valor hexadecimal" frente a "cadena hexadecimal". Para mí, el "valor hexadecimal" es un tipo numérico donde el byte 6f se almacena realmente en la máquina como binario 0110 1111 (que es 6f). En muchos idiomas, incluido C ++, puede lograr esto al añadir "0x" al valor:

unsigned int some_hex = 0x6f;

Mientras que, principalmente para propósitos de E / S cuando se trata de archivos legibles, usted usará una cadena hexadecimal que son valores ASCII / Unicode para cada dígito 0-9 y a-f, que es lo que es su "cadena AttackAtDawn". Sin embargo, para la máquina, el valor "6f" es la codificación de caracteres para el dígito 6 y la letra f, que se debería convertir a una forma numérica, como int sin signo, para realizar operaciones matemáticas en el valor hexadecimal.

    
respondido por el Rob 17.07.2014 - 23:50
fuente

Lea otras preguntas en las etiquetas