2014-10-10 5 views
-1

해싱을위한 소금으로 하나의 비밀 문자열을 사용해야합니까, 아니면 각 사용자에게 해싱을위한 소금을 제공하는 것이 좋습니까? hash (username_str + password_str)와 같은 암호를 해싱 할 때 사용자의 사용자 이름을 소금으로 사용하는 것이 좋은 생각입니까?

이 세 해시를 고려

:

hash("secretKey777" + password); 
hash("secretKey777" + username + password); 
hash(username + password); 

균열 어려운하고 안전한 어느 하나? hash("secretKey777" + username + password);을 사용하는 것이 가장 바람직하다고 생각합니다. 왜냐하면 각 사용자는 salt로 "secretKey777"뿐만 아니라 자체 사용자 이름을 갖기 때문입니다. 암호 누출을 해킹하는 코드의 경우 모든 해시에 대한 공격이 한 번에 발생하지 않습니다. 각 해시마다 고유 한 소금이 있습니다.

가 가) 암호를 해독하기 위해 특정 소금에 대한 rainbow table를 구축 있도록 소금을 유출하는, 그래서 hash("secretKey777" + password)을위한 옵션 a)는 각 사용자 (그렇지 않으면 고유하지

: 나의 이해에서

+1

이 아마 더 잘 맞는 –

+0

@MikeW 감사 [security.se]에 대한 것입니다 선호, 난 그냥, 너무 거기 물었다. 링크는 다음과 같습니다. http://security.stackexchange.com/questions/69421/is-it-a-good-ide-to-use-the-users-username-as-a-salt-when-hashing-a- 비밀 번호 - 난 – bodacydo

답변

-1

는 소금이되어야한다 나를. b) 암호 학적으로 무작위 (이것에 대한 논점이 없습니다. 단지 이것이 도움이된다는 느낌 일뿐입니다).

내가

hash("secretKey777" + cryptographically_random_salt_string + password);