2013-12-12 4 views
2

현재 내 코드는 다음과 같습니다 : 'sha512와 함께 freeBSD에서 crypt()를 사용하는 방법?

res = crypt(szPWhash, "$6$QX"); 

그러나 아무튼 :

if (iInit == 1) 
{ 
    if (crypt_set_format("sha512") == 0) 
     return -1; 

    iInit = !iInit; 
} 

res = crypt(szPWhash, "ABCDEFGH"); 

결과 해시 € v

가 이미

res = crypt(szPWhash, "$6$QX$"); 

을 tryed 또는이 표기법 어느 소금을 선택해야합니까? 또는 입력 한 암호는 무엇입니까?

결과 해시는 변경되지 않을 때마다 € v입니다.

sha512 해시처럼 보이지 않는 것은 무엇입니까?

그래서 내가 뭘 잘못하고있어?

편집

나는 내가 encrypton의 mehtod, 해시 변경을 변경하지만 경우에, 그것은 비슷한 내가 같은 키 및/또는 소금 선택 중요하지 않습니다 유지 것을 알아 냈다.

답변

0

내가 토굴에 대해 잘 모르지만, 같은하려면 openssl로가 보일 것이다 : I에는 OpenSSL 라이센스를 좋아하지 않는다

SHA512_CTX * ctx = calloc(sizeof ctx,1); // or stack allocate/not as a pointer 
SHA512_Init(ctx); 
char * str = "blahblah"; 
SHA512_Update(context, str, strlen(str)); 
unsigned char hash[SHA512_DIGEST_LENGTH]; 
SHA512_Final(hash, context); 
+0

. 그래서 나는 FreeBSD의 crypt (3) 시스템 기능을 선호 할 것이다. – dhein

관련 문제