2012-01-12 6 views
1

가능한 중복 삽입을위한 암호를 준비 :
Secure hash and salt for PHP passwords가장 좋은 방법/암호화 데이터베이스에

데이터베이스에 삽입에 대한 암호를 준비하는 가장 좋은 방법은 무엇

, 나는를 md5 알고 있지만 거기에 더 많은 기능을/암호화 내가 할 수 있는지 궁금 해서요.

감사합니다.

+0

나는 보통 sha1을 사용하지만 그 시점에서는 암호를 복구 할 수 없습니다. – kwelch

+0

http : //programmers.stackexchange에서 살펴볼 것을 권한다.com/questions/46716/what-should-every-programmer-know-about-web-development – cspray

답변

1

비밀번호를 암호화하고 싶지는 않지만 실제로 일치하는 비밀번호의 해시입니다. 암호를 저장

이 매우 불안하고 암호화를 나눌 수 있습니다, 하나의 단방향 해시 수 없습니다 * SO에

참고 :

** 아직, 내가 아는 것 *

+0

레인보우 테이블을 사용하지 않는 한 (그리고 그 이유는 암호가 소금에 절인 이유입니다). –

1

표준 연습은 암호화 전 암호 salt입니다.

암호화에서 소금은 임의의 비트로 구성되어 단방향 기능에 대한 입력 중 하나를 생성합니다. 다른 입력은 대개 암호 또는 암호입니다. 단방향 함수의 출력은 암호 대신 대신 저장할 수 있으며 여전히 사용자를 인증하는 데 사용됩니다. 단방향 함수는 일반적으로 암호화 해시 함수를 사용합니다. 암호 은 암호 또는 기타 암호화 알고리즘과 함께 사용할 키를 생성하기 위해 PBKDF2와 같은 키 유도 함수 ( )와 같은 암호와 결합 할 수도 있습니다. 암호 인증의 일반적인 사용법에서 소금은 단방향 기능의 출력과 함께 저장되며 때로는 출력 생성 (키 스트레칭)에 사용되는 반복 횟수와 함께 저장됩니다. 초기 Unix 시스템 은 12 비트 솔트를 사용했지만 현대 구현에서는 48 비트에서 128 비트까지의 더 큰 길이를 사용합니다. 소금은 논스 (nonce)의 개념과 밀접한 관련이 있습니다. 소금에 절인 암호를 사용하여 혜택을 얻으려면 소금이 충분히 큰 경우 저장된 값에 대한 보조 사전 공격 인 이 필요합니다. 즉, 공격자는 해시 된 값 (패스워드 + 소금)의 미리 계산 된 룩업 테이블 (즉, 무지개 테이블)을 너무 많이 차지할 수 있기 때문에 을 생성 할 수 없습니다. 미리 계산할 수 없기 때문에 많은 수의 이 있지만 간단한 사전 공격은 여전히 ​​가능합니다.

0

나 대개 sha1()을 사용하여 암호를 암호화하십시오.

+0

SHA-1은 암호화하지 않습니다. 그것은 해시. 큰 차이가 있습니다 ... – sarnold

관련 문제