>  기사  >  백엔드 개발  >  문자열의 해시 결과 중 처음 n자를 가로채서 문자열의 정확성을 비교하는 것이 적절합니까?

문자열의 해시 결과 중 처음 n자를 가로채서 문자열의 정확성을 비교하는 것이 적절합니까?

WBOY
WBOY원래의
2016-12-01 00:56:361249검색

물론 사용자 비밀번호를 저장할 때 전체 해시 결과를 저장해야 하지만 때로는 해시 결과가 매우 길고 어떤 경우에는 매우 부풀어오르는 것처럼 보입니다. 예를 들어, 간단한 쿠키 위조 방지 프로그램을 작성하고 싶습니다. 원래 쿠키 값을 mcrypt로 가역적으로 암호화한 다음 값에 솔트를 추가하여 sha256을 계산하고 sha256 결과의 처음 10자리를 가로채서 첨부하는 것이 아이디어입니다. 최종 쿠키 값에. 확인하는 동안 쿠키 값을 분할하고, 이전 문자를 해독하고, sha256을 계산하여 처음 10비트를 다음 값과 비교하기만 하면 됩니다. 이거 안전한가요?

답글 내용:

물론 사용자 비밀번호를 저장할 때 전체 해시 결과를 저장해야 하지만 때로는 해시 결과가 매우 길고 어떤 경우에는 매우 부풀어오르는 것처럼 보입니다. 예를 들어, 간단한 쿠키 위조 방지 프로그램을 작성하고 싶습니다. 원래 쿠키 값을 mcrypt로 가역적으로 암호화한 다음 값에 솔트를 추가하여 sha256을 계산하고 sha256 결과의 처음 10자리를 가로채서 첨부하는 것이 아이디어입니다. 최종 쿠키 값에. 확인하는 동안 쿠키 값을 분할하고, 이전 문자를 해독하고, sha256을 계산하여 처음 10비트를 다음 값과 비교하기만 하면 됩니다. 이거 안전한가요?

비밀번호의 해시값은 쿠키에 포함되어서는 안 됩니다. 로그인 확인을 위해 추가 토큰을 생성할 수 있습니다.

이러한 접근 방식은 여전히 ​​매우 일반적입니다. 16비트 md5는 먼저 32비트를 계산한 다음 중간 16비트를 가로채는 방식으로 구현됩니다. 물론 너무 짧으면 무차별 대입 공격에 주의하세요.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.