파이썬 실습/암호화프로그램만들기

파이썬 암호화 프로그램 만들기 - 2. 단방향 암호화 - 해시(Hash)

파기차차 2022. 11. 17. 07:06
728x90
반응형
SMALL
728x90
ㅁ 개요

 

O 프로그램 소개
 

 

 

 - 이번 프로그램은 이전글(2022.11.15 - [파이썬 실습/암호화프로그램만들기] - 파이썬 암호화 프로그램 만들기 - 1. 소개편)에 이은 2번째 글로 단방향 암호화에 대하여 설명합니다.

(본 블로그의 내용은 유튜브 동영상(파이썬 암호화 프로그램 만들기-2.해시(making Encryption program byPython 2. one way encryption(hash)))에서 더욱 자세히 보실 수 있습니다.)

 

 

 

 - 단방향 암호화의 핵심인 해시는 한번 암호화하면 원래상태 즉, 복호화가 불가능한 암호화 기법입니다. 이를 사용하는 가장 중요한 이유 중 하나는 원본데이터의 조작여부를 확인하는데 해시만큼 좋은 기법이 없기 때문입니다.

 

해시에 대한 내용은 여기까지 간단히 설명 드리고, 더욱 자세한 내용은 아래 링크에서 세상에서 가장 쉬운 설명을 들으실 수 있습니다.

(개인적으로 이 어려운 내용을 이렇게 쉽게 설명하는 곳은 처음 봤습니다. 감동받아서 이렇게 링크로 공유 드립니다.)

https://www.youtube.com/watch?v=qP1H2dwnAVA&t=9s (암호학1-2. 단방향 암호화 방법, 생활코딩)

(참고로 저는 이곳과 아무런 이해관계가 없음을 밝힙니다.)

 

 

O 완성된 프로그램 실행 화면
 

 

 - 최종 완성된 프로그램의 결과화면은 아래와 같습니다.

(1) 아래에서와 같이 프로그램을 실행시키면 원본 메시지(1. 홍길동, 2. hongkildong) 의 해시값을 보여줍니다.

 

 


 

O 시작전 준비 사항

 

 

 - 프로그램을 실행하기 위해서는 해시 모듈이 필요합니다. 아래와 같이 임포트 해줍니다.

 

import hashlib

 

 

 

간단하게 여기까지 이상없이 되셨다면 이제 우리는 다음 단계로 넘어갈 준비가 되었습니다.


 

ㅁ 세부 내용
 
O 완성된 소스

 

import hashlib

str1 = "홍길동"
str2 = "hongkildong"

result = hashlib.sha256(str1.encode())
print("'",str1, "' 의 해시값(sha256) : ", result.hexdigest())

result = hashlib.sha256(str2.encode())
print("'",str2, "' 의 해시값(sha256) : ", result.hexdigest())

 

O 소스 다운로드 및 실행
 
 - 소스파일 다운로드 후 cmd 또는 파워쉘 등에서 아래와 같이 실행하시기 바랍니다.
 
 
 > python 1.hash.py

 

 


 
 
O 소스 분석

 

1.result = hashlib.sha256(msg1.encode()) <-- msg1을 인코딩 후 sha256으로 해시
2.print("'",msg1, "' 의 해시값(sha256) : ", result.hexdigest()) <-- 해시된 값을 보기위해 hexdigest()함수 사용
3,result = hashlib.sha256(msg2.encode()) <-- msg2을 인코드 후 sha256으로 해시
4,print("'",msg2, "' 의 해시값(sha256) : ", result.hexdigest()) <-- 해시된 값을 보기위해 hexdigest()함수 사용

 


 

O 주요 내용

 

 

1.기본 소스에 대한 설명은 위에서 설명 드린 바와 같으며, 프로그램을 실행하면 간단하게 메시지1과 메시지2에 대한 해시값을 보여줍니다. 이 값을 역으로 복호화 할 수 없습니다.

 

 

 

 

 

 

 

 

 


 

ㅁ 정리
 
O 우리가 배운 내용
 
 - 오늘은 암호화의 내용 중 단방향 암호화에 대하여 공부해 보았습니다.
 
 
 - 오늘 우리가 배운 내용을 간단히 정리해 보면 아래와 같습니다.
 
 > 1. 메시지 인코딩 : msg1.encode()
 > 2. 인코딩된 메시지를 sha256으로 해시 : hashlib.sha256(msg1.encode())
 > 3. 해시값을 보기위해 hexdigest()함수 사용: result.hexdigest()
 
 

 

오늘은 여기까지이며, 위의 내용이 유익하셨다면, 좋아요와 구독 부탁드립니다.

 

 

감사합니다.

 

 

728x90
반응형
LIST