Oui, la bibliothèque cryptographique par défaut proposée par Cloud Code prend en charge PBKDF2, il n'est donc pas nécessaire d'essayer de porter une autre bibliothèque dans le framework.
par exemple
var crypto = require('crypto');
var SALT_LEN = 32;
function randomSafeBytes(len) {
return crypto.randomBytes(len)
.toString('base64')
.slice(0,len)
.replace(/\+/g, '0') // replace '+' with '0'
.replace(/\//g, '0'); // replace '/' with '0'
}
function generate_key(password) {
// get a brand new key
var salt = randomSafeBytes(SALT_LEN);
return {
salt:salt,
key:generate_key_from_salt(password, salt)
}
}
function generate_key_from_salt(password, salt) {
// regenerate a key from a given salt
var ITERATIONS = 100000; // tune this figure to balance platform/needs
var KEY_LEN = 32;
return crypto.pbkdf2Sync(password, salt.slice(0,SALT_LEN), ITERATIONS, KEY_LEN);
}