Parse.com 的加密库是否支持 PBKDF2?
Does Parse.com's Crypto library support PBKDF2?
crypto
Parse.com 中的 Cloud Code 中缺少可用的库的文档建议我应该去别处看看。但我发现它支持 AES 加密和一些散列。
我看不到任何 PBKDF2 支持。
谁能确认 Parse.com Crypto 是否支持 PBKDF2?你有 API 例子吗?
我个人没有在云代码中使用过,但是here's a relevant post from Parse that addresses your question.关于云代码中的加密模块,
It's the general node module that can be found here:
http://nodejs.org/api/crypto.html
Crypto 确实支持 PBKDF2,如果您需要更新版本的模块,您可以直接加载模块,方法是在您的云/文件夹中放置一个副本并使用 require('cloud/crypto')
是的,Cloud Code 提供的默认加密库支持 PBKDF2,因此无需尝试将另一个库移植到框架中。
例如,
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);
}
crypto
Parse.com 中的 Cloud Code 中缺少可用的库的文档建议我应该去别处看看。但我发现它支持 AES 加密和一些散列。
我看不到任何 PBKDF2 支持。
谁能确认 Parse.com Crypto 是否支持 PBKDF2?你有 API 例子吗?
我个人没有在云代码中使用过,但是here's a relevant post from Parse that addresses your question.关于云代码中的加密模块,
It's the general node module that can be found here: http://nodejs.org/api/crypto.html
Crypto 确实支持 PBKDF2,如果您需要更新版本的模块,您可以直接加载模块,方法是在您的云/文件夹中放置一个副本并使用 require('cloud/crypto')
是的,Cloud Code 提供的默认加密库支持 PBKDF2,因此无需尝试将另一个库移植到框架中。
例如,
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);
}