相关疑难解决方法(0)

比较PHP和NodeJS之间的BCrypt哈希

对于我正在处理的应用程序,nodejs需要验证PHP创建的哈希值,反之亦然.

问题是,PHP中生成的哈希(通过Laravel的Hash类,只使用PHP的password_hash函数)在node.js中测试时返回false.

以下node.js脚本:

var bcrypt = require('bcrypt');

var password = 'password';

var phpGeneratedHash  = '$2y$10$jOTwkwLVn6OeA/843CyIHu67ib4RixMa/N/pTJVhOjTddvrG8ge5.';
var nodeGeneratedHash = '$2a$10$ZiBH5JtTDtXqDajO6f4EbeBIXGwtcGg2MGwr90xTH9ki34SV6rZhO';

console.log(
  bcrypt.compareSync(password, phpGeneratedHash)  ? 'PHP passed' : 'PHP failed',
  bcrypt.compareSync(password, nodeGeneratedHash) ? 'nodejs passed' : 'nodejs failed'
);
Run Code Online (Sandbox Code Playgroud)

输出:'PHP失败的nodejs传递',而以下的PHP脚本:

<?php

$password = 'password';

$phpGeneratedHash  = '$2y$10$jOTwkwLVn6OeA/843CyIHu67ib4RixMa/N/pTJVhOjTddvrG8ge5.';
$nodeGeneratedHash = '$2a$10$ZiBH5JtTDtXqDajO6f4EbeBIXGwtcGg2MGwr90xTH9ki34SV6rZhO';

print password_verify($password, $phpGeneratedHash)  ? 'PHP passed' : 'PHP failed';
print password_verify($password, $nodeGeneratedHash) ? 'nodejs passed' : 'nodejs failed';
Run Code Online (Sandbox Code Playgroud)

输出'PHP传递的nodejs传递'.

我已经运行使用PHP 5.5.18在Ubuntu 14.04.1测试,Node.js的v0.10.32和故宫bcrypt模块.

php bcrypt node.js

28
推荐指数
2
解决办法
7250
查看次数

nodejs中的password_hash等价物

我面临的情况需要验证password_hash在nodejs服务器上通过PHP 方法创建的密码.

是否nodejs有可用的包相当于password_hashpassword_verify?谢谢.

php passwords node.js

9
推荐指数
2
解决办法
3866
查看次数

Node.js中的$ 2y bcrypt哈希值

我正在处理带有$2y哈希的旧数据库.我已经挖了一下这个,也偶然发现堆栈溢出$2a和之间的区别$2y.

我查看了bcrypt似乎生成并仅比较$2a哈希的节点模块.

我找到了一个生成$2y哈希的网站,所以我可以测试它们bcrypt.

这是一个$2y字符串哈希的例子helloworld.

helloworld:$2y$10$tRM7x9gGKhcAmpeqKEdhj.qRWCr4qoV1FU9se0Crx2hkMVNL2ktEW
Run Code Online (Sandbox Code Playgroud)

似乎模块无法验证$2y哈希值.

这是我的考试.

var Promise = require('bluebird')
var bcrypt = require('bcrypt')

var string = 'helloworld'

Promise.promisifyAll(bcrypt)

// bcrypt.genSalt(10, function(err, salt) {
//   bcrypt.hash(string, salt, function(err, hash) {
//     console.log(hash)
//   })
// })

var hashesGeneratedUsingBcryptModule = [
  '$2a$10$6ppmIdlNEPwxWJskPaQ7l.d2fblh.GO6JomzrcpiD/hxGPOXA3Bsq',
  '$2a$10$YmpoYCDHzdAPMbd9B8l48.hkSnylnAPbOym367FKIEPa0ixY.o4b.',
  '$2a$10$Xfy3OPurrZEmbmmO0x1wGuFMdRTlmOgEMS0geg4wTj1vKcvXXjk06',
  '$2a$10$mYgwmdPZjiEncp7Yh5UB1uyPkoyavxrYcOIzzY4mzSniGpI9RbhL.',
  '$2a$10$dkBVTe2A2DAn24PUq1GZYe7AqL8WQqwOi8ZWBJAauOg60sk44DkOC'
]

var hashesGeneratedUsingAspirineDotOrg = [
  '$2y$10$MKgpAXLJkwx5tpijWX99Qek2gf/irwvp5iSfxuFoDswIjMIbj2.Ma',
  '$2y$10$tRM7x9gGKhcAmpeqKEdhj.qRWCr4qoV1FU9se0Crx2hkMVNL2ktEW'
]

var …
Run Code Online (Sandbox Code Playgroud)

javascript cryptography bcrypt node.js

8
推荐指数
1
解决办法
2731
查看次数

NODE.JS - 如何使用 bcrypt 检查 Laravel 哈希密码?

我正在开发一个Node.js需要使用来自Laravel应用程序的相同数据库信息登录的应用程序。

我已经阅读BCrypt并尝试使用它来比较它生成的散列密码与Laravel存储在数据库中的密码。

所以,根据 的文档BCrypt,我需要做这样的事情:

var salt = bcrypt.genSaltSync(saltRounds);
var hash = bcrypt.hashSync(myPlaintextPassword, salt);
Run Code Online (Sandbox Code Playgroud)

但我不知道如何使用完全相同的盐Laravel来散列我的密码。我需要使用APP_KEY来做到这一点吗?

hash bcrypt node.js laravel

1
推荐指数
1
解决办法
2169
查看次数

标签 统计

node.js ×4

bcrypt ×3

php ×2

cryptography ×1

hash ×1

javascript ×1

laravel ×1

passwords ×1