NodeJs Crypto error -Object has no method pbkdf2Sy

2020-02-15 08:24发布

问题:

I am using nodeJS Crypto Module to encrypt password.

Sample code:

crypto.pbkdf2Sync(password, salt, 200, 64).toString('base64');

But I am not sure, whenever I call this method, following error shown

TypeError: Object # has no method 'pbkdf2Sync'

Please let me know what is the issues

Thanks all

回答1:

pbkdf2Sync was added to the Crypto module in version 0.9.3.

You can either upgrade your installation of Node to 0.9.3 or higher, or you can use the asynchronous version of the function, crypto.pbkdf2, which requires a callback.

If your previous code looked like

var result = crypto.pbkdf2Sync(password, salt, 200, 64);
var encodedResult = result.toString('base64');
doStuff(encodedResult);

Then the asynchronous code might look like:

crypto.pbkdf2Sync(password, salt, 200, 64, function(err, result) {
    var encodedResult = result.toString('base64');
    doStuff(encodedResult);
});

This is merely an example; a full discussion of sychronous versus asynchronous operations is vastly outside the scope of this question. One good overview of the topic is How do I return the response from an asynchronous call?