has_secure_password在Rails 3.1中使用时,bcrypt会为每个用户的密码随机生成一个salt.基于此响应,我了解salt是作为密码哈希的一部分存储的.是否有可用于分别访问该盐的方法或属性,例如用于编写安全cookie?
我写了一个小型的网络服务器,目前在ssl上使用基本的auth.到目前为止一切都很好.现在我想(需要)切换到摘要身份验证.但我无法弄清楚如何使用未在数据库中以明文形式存储的密码来完成此工作?我只存储了用户密码的密码摘要(使用bcrypt生成).是否可以使用http digest auth?
我正在使用Laravel的bcrypt函数来散列密码.当我做,
bcrypt('secret')
Run Code Online (Sandbox Code Playgroud)
我明白了
=> "$2y$10$mnPgYt2xm9pxb/c2I.SH.uuhgrOj4WajDQTJYssUbTjmPOcgQybcu"
Run Code Online (Sandbox Code Playgroud)
但是,如果我再次运行它,我会得到
=> "$2y$10$J8h.Xmf6muivJ4bDweUlcu/BaNzI2wlBiAcop30PbPoKa0kDaf9xi"
Run Code Online (Sandbox Code Playgroud)
等等...
那么,如果每次都得到不同的值,密码匹配过程是否会失败?
BCrypt.net有几个不同的端口,很难说哪个是"最好的".
有没有人花时间审查它们并得出任何关于哪个项目光顾的结论?我最感兴趣的是哪个开发者社区最活跃.当然功能集,有效性,简单性和文档也很好:)
以下是我能够追踪的BCrypt.Net实现列表:
据我所知,这是第一个端口,并且暂时没有更新.版本0.1
用户将Derek Slager的副本发布到谷歌代码并做了一些改进.版本0.3
Visual Studio唯一的NuGet版本,它是一个没有源代码的编译副本,所以我肯定不知道它的任何内容.它似乎支持仅在版本0.3 Google Code版本中提供的新功能.它没有列出任何支持网站,我不知道它是否是开源的,没有任何归属(有点粗略).版本1.0,213下载.
这似乎是一个完全独立的港口,与Derek Slager的港口无关.它似乎有一些半定期的更新.版本R5,140下载.
这个清单完整了吗?是否有理由选择一个而不是另一个?
要散列密码(单向),看起来像bcrypt是最好的.
我即将开始使用jBCrypt,但我有一些担忧:
是否有一个类似的,更主流的图书馆,每个人都在使用,我错过了某种方式?(Java,开源)
还是它实际上是"最主流的"?
我看到一个建议,即轮数的数量应该($currentYear - 2000)考虑到摩尔定律,因此2013年将是13轮次,因此2^13总迭代次数.当然,你需要考虑你自己的硬件,以确保它不会花太长时间(我看到1 second建议用"检查密码/哈希"的"安全",并且在我当前的硬件上有13个回合落在那个标记上).
对于社交网络类型的网站来说这听起来合理吗?或者,我是否会通过使用将自己设置为非常慢的密码检查($currentYear - 2000)?
另外,你如何处理从一年到下一年的轮数改变?不会改变轮数改变哈希值,因此不允许你在2014年检查哈希,因为支票将使用额外一轮?您是否必须每年重新计算每一个哈希值,或者它将如何正常工作?
我尝试在heroku中进行部署时遇到问题.有趣的是,这是三天前的工作.此外,在本地机器上工作正常.
Bcrypt的版本是3.0.0,节点8.12.0
我真的需要部署这个服务器.你能告诉我如何解决这个错误吗?我尝试过一些我发现的解决方案但没有任何效果.我甚至尝试卸载并重新安装Bcrypt但不起作用.
谢谢您的帮助.
这是日志.
-----> Node.js app detected
-----> Creating runtime environment
NPM_CONFIG_LOGLEVEL=error
NODE_VERBOSE=false
NODE_ENV=production
NODE_MODULES_CACHE=true
-----> Installing binaries
engines.node (package.json): unspecified
engines.npm (package.json): unspecified (use default)
Resolving node version 8.x...
Downloading and installing node 8.12.0...
Using default npm version: 6.4.1
-----> Restoring cache
- node_modules
-----> Building dependencies
Installing node modules (package.json + package-lock)
> bcrypt@3.0.0 install /tmp/build_7bec2ec99162a9fbf0c48b54d7fcf7ea/node_modules/bcrypt
> node-pre-gyp install --fallback-to-build
make: Entering directory '/tmp/build_7bec2ec99162a9fbf0c48b54d7fcf7ea/node_modules/bcrypt/build'
make: Entering directory '/tmp/build_7bec2ec99162a9fbf0c48b54d7fcf7ea/node_modules/bcrypt/build'
CXX(target) Release/obj.target/bcrypt_lib/src/blowfish.o
CXX(target) Release/obj.target/bcrypt_lib/src/blowfish.o
rm: cannot remove './Release/.deps/Release/obj.target/bcrypt_lib/src/blowfish.o.d.raw': …Run Code Online (Sandbox Code Playgroud) 我正在制作一个用户身份验证页面,就此而言,我正在使用 bcrypt 进行哈希处理。一切都很好,直到我在代码中实际使用 bcrypt 模块。在开发模式下运行它工作得很好,并且在预览构建时运行得很好,但在构建过程中会发生错误,部署时会导致它停止构建并出错。
\n这是错误:
\n> Using @sveltejs/adapter-vercel\n > node_modules/@mapbox/node-pre-gyp/lib/util/s3_setup.js:43:28: error: Could not resolve "mock-aws-s3" (mark it as external to exclude it from the bundle, or surround it with try/catch to handle the failure at run-time)\n 43 \xe2\x94\x82 const AWSMock = require('mock-aws-s3');\n \xe2\x95\xb5 ~~~~~~~~~~~~~\n\n > node_modules/@mapbox/node-pre-gyp/lib/util/s3_setup.js:76:22: error: Could not resolve "aws-sdk" (mark it as external to exclude it from the bundle, or surround it with try/catch to handle the failure at run-time)\n 76 \xe2\x94\x82 const AWS = …Run Code Online (Sandbox Code Playgroud) 我正在尝试制作一个 dockerfile 并将我的代码运行到这个容器中。我收到以下错误:
node:internal/modules/cjs/loader:1187
return process.dlopen(module, path.toNamespacedPath(filename));
^
Error: /node_modules/bcrypt/lib/binding/napi-v3/bcrypt_lib.node: invalid ELF header
at Object.Module._extensions..node (node:internal/modules/cjs/loader:1187:18)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Module.require (node:internal/modules/cjs/loader:1005:19)
at require (node:internal/modules/cjs/helpers:102:18)
at Object.<anonymous> (/node_modules/bcrypt/bcrypt.js:6:16)
at Module._compile (node:internal/modules/cjs/loader:1103:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1157:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12) {
code: 'ERR_DLOPEN_FAILED'
}
Run Code Online (Sandbox Code Playgroud)
我的应用程序在没有 Docker 的情况下运行良好。我还尝试像这个问题一样删除 bcrypt:Node - was generated against a different Node.js version using NODE_MODULE_VERSION 51
docker文件:
FROM node:16
WORKDIR ./
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 4000
CMD …Run Code Online (Sandbox Code Playgroud)