반응형
https://cryptohack.org/courses/intro/enc2/
무언가를 암호화할 때, 결과 암호문은 출력 가능한 ASCII 문자가 아닌 바이트를 갖는다. 암호화된 데이터를 공유하려면 서로 다른 시스템에서 보다 사용자 친화적이고 이식 가능한 데이터로 인코딩하는것이 일반적이다.
16진수는 ASCII 문자열을 나타내는 방식으로 사용할 수 있다. 각 문자는 ASCII 표에따라 ordinal number로 변환된다. 그 다음 10진수는 16진수로 변환된다. 숫자들은 하나의 긴 16진수 문자열로 합쳐질 수 있다.
파이썬에서 bytes.fromhex() 함수를 사용하여 16진수를 바이트로 변환할 수 있다. .hex() 인스턴스 메소드는 바이트 문자열에서 호출해서 16진수 표현을 가져올 수 있다.
cipher = "63727970746f7b596f755f77696c6c5f62655f776f726b696e675f776974685f6865785f737472696e67735f615f6c6f747d"
plain = "crypto{You_will_be_working_with_hex_strings_a_lot}"
print(bytes.hex(bytes(plain, "utf-8")))
print(bytes.fromhex(cipher))
이렇게 함수를 사용한다.
반응형