2017-12-12 12 views
0

우리는이 함수를 사용하여 앱에서 비밀번호를 암호화합니다. 실제 문자열이 필요할 때 암호를 해독하는 방법입니다. var crypto = require('crypto');해시를 해독하는 방법이 함수에서 가져 오기

function encryptPassword(password) { 
    var salt = new Buffer('priotzen', 'base64'); 
    return crypto.pbkdf2Sync(password, salt, 10000, 64).toString('base64'); 
} 

감사합니다 :)

+0

단방향 해시입니다. 해독 할 수 없습니다. – user1751825

답변

1

당신이 제공 한 코드는 단방향 해시를 생성합니다. 이 옵션을 사용하면 해시 값을 비교하여 암호의 유효성을 검사합니다. 기존 암호를 해독 할 방법이 없습니다. 사용자가 암호를 잊은 경우 암호 재설정을 수행합니다.

검색 가능한 암호를 갖고 싶다면 해시 알고리즘이 아닌 암호화를 살펴 봐야합니다. 이러한 유형의 응용 프로그램에는 AES와 같은 대칭 키 암호화가 적합 할 수 있습니다.

암호화는 계산 상 해싱보다 비용이 많이 들지 않으며 덜 안전합니다. 해싱은 거의 항상 암호로 선호됩니다. 검색 가능한 암호가 있어야하는 매우 강력한 이유가없는 한 클라이언트를 단방향 해시 암호로 안내해야합니다.

+0

1. 암호 확인이 목표 일 때 암호화를 사용하면 안됩니다. 2. AES-NI 명령어가있는 CPU가 일반적으로 사용 가능하며 많은 플랫폼에서 빠른 암호화 엔진을 사용할 수 있으므로 해싱보다 암호화가 더 비쌉니다. 3. PBKDF2는 NIST에서 권장하는 암호 확인 프로그램입니다. 사실 해싱 ** 암호 해싱 **은 암호 확인에 사용되는 암호 확인 프로그램을 만드는 데 선호되는 방법입니다. 4. 암호를 암호화하면 공격자와 관리자에게 암호가 노출 될 수 있습니다. – zaph