유저의 비밀번호를 암호화할 때는 단방향 해시 함수를 많이 사용합니다. 단방향이기 때문에 암호화는 가능하지만 복호화는 불가능합니다.
단방향 해시 함수 중에 많이 사용하는 알고리즘이 sha256
입니다.
1) sha은 secure hash algorithm
의 약어입니다.
2) 256이 붙은 이유는 암호화된 결과가 256비트로 구성되기 때문입니다. 64자리의 16진수 문자열이 반환됩니다. 16진수 1자리는 4비트를 차지합니다. 이진수 0000부터 1111까지가 16진수로 0~F이기 때문입니다.
파이썬에서 sha256 알고리즘으로 암호화를 하고 싶을 때는 hashlib
모듈을 사용할 수 있습니다. 표준 라이브러리이기 때문에 별도의 설치가 필요하지 않습니다. test1234 라는 비밀번호를 sha256 알고리즘으로 암호화해보겠습니다.
import hashlib
pw = b"test1234"
m = hashlib.sha256()
m.update(pw)
hashed_pw = m.hexdigest()
print(hashed_pw)
test1234라는 문자열은 결과적으로 다음과 같이 암호화됩니다.
937e8d5fbb48bd4949536cd65b8d35c426b80d2f830c5c308e2cdec422ae2244