Tag: 密码

在Node / Express中哈希,盐和保存密码

我需要Node的标准库中的Crypto模块。 我有这个处理registry单的POST路由: app.post('/superadmin/add-account', function(req, res) { // Shorthand variable var doc = req.body; crypto.randomBytes(32, function(err, buf) { if (err) throw err; // Sanitise and transform user input … // Validate user input … var errors = validator.getErrors(); // Generate new object data doc.salt = buf; doc.pass = doc.salt + 'justForNow'; console.log(doc); 当我输出文档(req.body),现在我得到了一些值,似乎对我来说是奇怪的…在控制台输出buf大多由类似于一个问号框里面的charachter组成。 它是否正确? 但是当我保存buf到doc.salt并输出这个我完全得到了一些东西…“慢缓冲AE是C5 A3 […]

如何在node.js中24小时内设置生成的密码到期

这里是完整的细节…我需要设置过期到忘记密码选项生成的密码,通过电子邮件发送给用户在24小时内,因为在此之后,用户应该要求在node.js新密码和如何设置检查生成的密码是否在其有效期内使用。 我正在使用此代码忘记密码 exports.sendForgotPasswordEmail = function(user, password) { var emailText = fs.readFileSync(path.resolve(process.cwd(), process.app.i18n('forgot-password.html')), 'UTF-8'); var body = util.format( emailText, user.name, process.app.conf.get(process.app.conf.HomePage), user.email, password, process.app.conf.get(process.app.conf.SupportEmail) ); var subject = process.app.i18n('Recover Password !!'); async.nextTick(function() { notifications.util.mail.sendEmail(user.email, null, null, subject, body, null); }); return; }; ' 请帮我解决这个问题…!

Cypher查询,格式/组返回值

有没有一种方法来格式化密码查询的返回值? 如果我做一个查询,返回一个节点和所有节点与该节点的关系('RETURN id(startnode),id(relationnode)')我会得到一个数组包含每个关联节点与一个startnode捆绑。 例如: [ { relationnode: 0, startnode: 1 }, { relationnode: 1, startnode: 1 } ] 我多么希望它能够工作,就是让返回值形成如下格式: { relationnode: [ 0, 1 ], startnode: 1 } 有没有办法做到这一点,还是只是不好的做法呢? 这将是非常有用的,如果我知道永远不会有超过1个startnode。 编辑:我知道我可以在查询后parsing它,我宁愿能够在查询中做到这一点。

NodeJS AES 256hex解密错误

美好的一天。 我想使用nodejs模块encryption解码以前编码的string。 string是用AES 256 ECB编码的,我把它作为hex。 我所有的尝试几乎没有,只是有时我得到空string,而不是错误。 我'需要'只有encryption,没有开放ssl。 HEX :820D4DA01CE75046C399CA314C5428C6AF8D69C6573B4DE5A6942A5277936F56 键 :7y05R9qwKaIKgIHh4vAw19X1zuknR21Y 这是我的nodejs代码。 var algorithm = 'aes-256-ecb', password = '7y05R9qwKaIKgIHh4vAw19X1zuknR21Y', encString = '820D4DA01CE75046C399CA314C5428C6AF8D69C6573B4DE5A6942A5277936F56' var decipher = crypto.createDecipher(algorithm,password); var dec = decipher.update(encString,'hex','utf8'); dec += decipher.final('utf8'); console.log(dec); 我有这个错误。 Error: error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt. 需要你的帮助。 UPDATE 经过Maarten Bodewes和这个主题几个小时和无价的build议,这是工作的解决scheme。 var encString=req.query.d; console.log(encString); var algorithm = 'aes-256-ecb', password = new Buffer('7y05R9qwKaIKgIHh4vAw19X1zuknR21Y', […]

在Neo4j中检索节点列表以及与它们直接相关的节点的ID列表

在我的数据库中,我有:用户节点,它们通过:友谊关系相关。 我想要得到这样的结构: [ { id: 1, username: "Whatever", email: "whatever@test.com" … }, [ 6, 7, 8, … ] ], [ { id: 2, username: "Another user", email: "anotheruser@test.com" … }, [ 15, 16, 17, 18, … ] ], … …其中数字是节点与a:友谊关系直接相关的节点的ID。 这个答案有一些疑问, 几乎做的工作: 我能findneo4j中两个节点之间的所有关系吗? 但是我提出的最接近的是: match p=(a:User)-[:Friendship]->(d:User) return d, reduce(nodes = [],n in nodes(p) | nodes […]

比较两个密码哈希值 – nodejs

我正在使用encryptionhttps://nodejs.org/api/crypto.html进行密码encryption和身份validation。 我正在更改密码页面上工作,并且在确定用户提供的密码是否与现有密码具有相同的哈希值时遇到问题。 以下是我的代码。 var createSalt = function createSalt() { return crypto.randomBytes(128).toString('base64'); }; var hashPwd = function hashPwd(salt, pwd) { var hmac = crypto.createHmac('sha256', salt); return hmac.update(pwd).digest('hex'); }; //use password , create salt, hash and compare with the existing var salt = createSalt(); var passHash = hashPwd(salt,data.Password); console.log('the password is', user.PassHash === passHash); 我期待如果上面的控制台消息打印真正的现有用户密码匹配。 但是,这两个哈希似乎并不匹配。 请问我错过了什么? […]

在nodejs中相当于password_hash

我面临的情况是需要validation在nodejs服务器上通过PHP password_hash方法创build的password_hash 。 nodejs是否具有与password_hash和password_verify等效的可用包? 谢谢。

什么使string/令牌密码安全?

如果您需要生成一个string/令牌来validation将来的请求(例如API密钥,电子邮件确认URL等),应考虑哪些因素? 尤其是 是什么让string“安全”/“很难猜到”? 如何测量/估计“安全量”? 那里的主要标准是什么? 一个实际的例子 我们从NodeJS中获取这两个输出string。 string1 (通过节点密码 ) var crypto = require('crypto'); crypto.randomBytes(48, function (ex, buf) { console.log(buf.toString('hex')); }); string2 (通过节点UUID ) var uuid = require('node-uuid'); console.log(uuid.v4()); 基于上述概念,哪一个更安全,为什么? 另外,请随时提出有关这个主题的任何好的介绍材料,因为我不容易find关于这个在线的文章。

beforeUpdate似乎没有被调用

我有一个简单的用户模型,如下所示: 'use strict'; let hashPassword = (user, options) => { if (!user.changed('password')) { return; } return require('bcrypt') .hash(user.getDataValue('password'), 10) .then(hash => user.setDataValue('password', hash)); }; module.exports = (sequelize, DataTypes) => { const User = sequelize.define('User', { username: {allowNull: false, type: DataTypes.STRING, unique: true}, email: {allowNull: false, type: DataTypes.STRING, unique: true}, password: {allowNull: false, type: DataTypes.STRING, unique: […]

Node中密码存储的密码学最佳实践

我正在寻找一个简单,安全的解决scheme来存储用户的密码,使用节点。 我是一个密码学新手,但一直试图从网上调查一起解决scheme。 我正在寻找validation,我想出的是一个具有基本(而不是银行,医院等)安全需求的Web应用程序的可靠解决scheme。 这里是: var crypto = require('crypto'); var SALT_LENGTH = 64; var KEY_LENGTH = 64; var ITERATIONS = 1000; function createHashedPassword(plainTextPassword, cb) { crypto.randomBytes(SALT_LENGTH, function (err, salt) { console.time('password-hash'); crypto.pbkdf2(plainTextPassword, salt, ITERATIONS, KEY_LENGTH, function (err, derivedKey) { console.timeEnd('password-hash'); return cb(null, {derivedKey: derivedKey, salt: salt, iterations: ITERATIONS}); }); }); }; …以下是我所做的select, 什么哈希algorithm使用? 基于这篇广泛引用的文章 ,它看起来像领先的竞争者是PBKDF2,bcrypt和scrypt。 我select了PBKDF2,因为它已经在Node中build立了支持。 […]