[PHP]sha1 단방향 암호화

해내면 그만!XX·2023년 1월 22일
0

단방향 암호화 :

암호화 방식에는 단방향 암호화와 양방향 암호화가 있는데

이는 평문을 암호화한 암호문에서 다시 평문을 만들 수 있느냐 없느냐의 차이로 구별합니다.

만약 암호문에서 평문으로 다시 되돌릴 수 있다면 양방향암호를 통해 암호화 한것으로 볼 수 있으며,

암호문에서 평문으로 다시 되돌릴 수 없으면 단방향 암호화 한것으로 볼 수 있습니다.

단방향 암호화란 한쪽 방향으로만 암호화를 한다는 의미이다. 즉 암호화만 가능하고 복호화는 할 수 없다.
그렇기 때문에 비밀번호를 관리할 때 유용하게 사용된다.
비밀번호를 단방향 암호화 방식으로 저장하는 경우에는 패스워드 DB가 노출되어도 안전하다.
패스워드를 검증할 때에는 사용자로부터 입력받은 비밀번호를 똑같은 방식으로 암호화하여 암호화된 패스워드끼리 비교를 하면 된다.

유저가 비밀번호를 잊어버렸을 때는 찾기가 불가능하다.
대신 비밀번호 변경 메일, SMS 인증을 통해 새로운 비밀번호를 입력하도록 하면 된다.

sha1 :
sha1 는 단방향 암호의 한 종류로 Secure Hash Algorithm 라고 합니다.

1993 년에 sha0가 고안되었다고 하며, 2년뒤에 sha1이 발표되었습니다.

현재는 md5 와 같이 결함이 발견되어 보안용도로는 사용하지 않도록 권장하는 알고리즘입니다.

sha1([문자열], [규칙]);
$password = (sha1('1234', true));

sha1 의 규칙 인수는 아래와 같은 값을 가질 수 있습니다.

TRUE - sha1 의 결과값이 20자리가 되어 출력됩니다.

FALSE - sha1 의 결과값이 40자리가 되어 출력되어 규칙을 설정하지 않는 경우 기본값이 됩니다.

참조
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=diceworld&logNo=220224656652
https://velog.io/@ayoung0073/Security-%EB%B9%84%EB%B0%80%EB%B2%88%ED%98%B8-%EB%8B%A8%EB%B0%A9%ED%96%A5-%EC%95%94%ED%98%B8%ED%99%94

0개의 댓글