2013-08-17 3 views
0

시스템에서 임의의 숫자 문자를 생성 한 암호 시스템을 설정하고이를 암호를 암호화하기위한 라운드 번호로 사용했습니다.crypt()에서 수동으로 라운드가 올바르게 작동하지 않음

로그인이 작동을 멈췄을 때까지는 문제가 없었습니다. 약간의 디버깅 후에 cyrpt() 함수가 더 이상 4 자리를 받아들이지 않고 처음 2 자리 만 유지한다는 것을 알게되었습니다.

예 :

생성 발사 번호 : 6355 크립트 출력 : $ 6 $ 발사 = 63 $ jOa4lXzFPo1W120PzaHk06JjQQ0C/PvmzB6SGdtniZ3hy2OeCQ9WDf2qlFEb9lHikGJcgp7vvI1wZxX4PcJWQ/

만 처음 2 개 자리가 유지되는 볼 수 있듯이.

왜 갑자기이 해결책이 변경 되었습니까?

+0

왜 그렇게 할 수 있습니까? 어떤면에서는 더 안전하지 않습니다. – Ryan

+0

하지만 두 자리 숫자보다 더 낫다고 생각했습니다. 어떻게 다르게 할 것인가? – ShadowZzz

+1

그 매개 변수를 제공하는 것을 괴롭히지 마십시오. 기본값은 5000입니다. – Ryan

답변

0

우선, 무작위로 지정된 수의 라운드를 사용할 목적이 없습니다. 이것은 추가적인 보안을 추가하지 않습니다.

두 번째로 사이트에 로그인하는 사용자의 비밀번호를 확인하는 데 사용하는 것 같습니다. 그것이 당신이하고있는 것이라면, 암호화가 아닌 편도 해시를 사용하는 것이 가장 안전한 방법입니다.

+0

로그인 시스템에 합당한 편도 암호화 방법을 보여 주시겠습니까? – ShadowZzz

+1

'crypt'와'$ 6 $'*는 단방향 해시입니다. – Ryan

+0

@minitech - 내 방법은 괜찮습니까? 이것도 괜찮아 보이니? $ hashed_password = crypt ($ validPassword, '$ 6 $'); – ShadowZzz

관련 문제