본문 바로가기

Til

Til 24.02.29 - 파이썬 개인과제/ 부족한점(int, hashlib.sha256)

 
int(input("숫자를 입력하시오 : "))  # 숫자를 입력받아도 "1"의 형태이므로 정수로 바꿔줘야함

 

사용자가 인풋값을 숫자로 입력을 하더라도 컴퓨터는 "12" 이런식의 문자로 받아들임

-> int로 감싸주어 숫자로 인식되도록함

반대의경우 str로 

 


import hashlib   #해시모듈을 임포트

class Member:
    def __init__(self, name, username, password):
        self.name = name
        self.username = username
        self.password = hashlib.sha256(password.encode()).hexdigest()  # 비밀번호를 해싱하여 저장합니다.

 

self.password = hashlib.sha256(password.encode()).hexdigest()

: 인스턴스 변수 password를 인자로 받은 password를 해싱하여 초기화함

 

password.encode() 비밀번호를 바이트열로 변환. 해시 함수는 바이트열을 입력으로 받음

hashlib.sha256(...) hashlib 모듈의 sha256 함수를 사용하여 SHA-256 해시 객체를 생성 - 이 함수는 주어진 데이터를 SHA-256 해시로 변환함

hexdigest() 해시 객체의 해시값을 16진수 문자열 형태로 반환함( 해시된 비밀번호를 16진수 형태로 저장)

 

예시 ))

 

 
import hashlib

data = b"baboya!"  # 데이터는 바이트열로 전달해야함
hash_object = hashlib.sha256(data)
hex_dig = hash_object.hexdigest()
print(hex_dig)

#출력 : dffd6021bb2bd5b0af676290809ec3a53191dd81c7f70a4b28688a362182986f
 

 

hash_object = hashlib.sha256(data): hashlib 모듈의 sha256 함수를 사용 -> SHA-256 해시 객체를 생성

  바보야라는 데이터의 해시를 생성하고 있음

hex_dig = hash_object.hexdigest(): 해시 객체의 hexdigest() 메서드를 호출하여 해시값을 16진수 문자열 형태로 반환/해시값을 16진수 형태의 문자열로 저장-> 해시값을 출력할 때 사용

print(hex_dig) 16진수 형태로 표현된 SHA-256 해시값 출력

 

---------------

해시는 아직 넘 어려움 ㅜㅜ