Tag: openssl

validation在NodeJS中使用php crypt()生成的哈希?

我有一个运行在其上的锂框架的PHP 5.3 Web服务器。 我有CRYPT_BLOWFISH生成的密码哈希值: public static function hash($password, $salt = null) { return crypt($password, $salt ?: static::salt()); } 他们得到这个检查: public static function check($password, $hash) { return String::compare(crypt($password, $hash), $hash); } 我正在寻找使我能够检查和生成类似哈希值的NodeJS脚本: 我已经尝试了这一点(现在检查): var c = crypto.createCipher('bf-cfb', password); var res = c.update(hash); res += c.final('utf8'); 哪里(不是确切的变数,但看起来像这样): var hash = '$2a$10$nA5CV2XWJGn0cbKxSHU3GOp29ypHNVJDglJ0iNFx2zFkfy3mrsRZK'; // from php var salt = […]

如何从PKCS#12文件中提取私钥,以便与nodeJS OAuth一起使用

我有一个包含私钥的p12文件,用于签署我的OAuth请求。 但是,OAuth NodeJS lib( ciaranj / node-oauth )不会将此格式作为input。 我尝试了许多OpenSsl选项(PKCS#8或传统PEM格式)从PKCS#12密钥库中提取我的私钥,但我无法获得OAuth头部签名以被接受。 我应该使用哪些OpenSsl选项来创build可用的PEM文件,如下所示: var privateKey = fs.readFileSync("privateKey.pem").toString('ascii'); var oauth= new OAuth(null, null, consumerKey, privateKey, "1.0", null, "RSA-SHA1"); 我不是OpenSsl的专家,所以任何提示都会非常受欢迎。 PS:或者,由于OAuth lib使用NodeJSencryption标记API,如果您知道使用PKCS#12文件进行签名的方式,则可以节省我的时间。

何时生成ssl密钥和证书 – 出于安全原因

我正在寻找生成一个privatekey.pem和certificate.pemauthentication在一个nodejs服务器。 我知道这些可以通过OpenSSL生成 ,然后保存到一个目录中,但我也发现,按需生成密钥和证书。 这个问题的答案表明,或者没问题 ,但更多的人更喜欢OpenSSL的方式。 使用pem听起来会更容易一些,但是有没有什么安全的原因,为什么我不能按照这种方式生成密钥和证书?

NodeJS,与express.js一起使用private ca

我正在尝试使用由自定义CA签名的服务器证书创buildhttps / express服务器。 这是我的代码: var express = require('express'); var https = require('https'); var fs = require('fs'); var app = express(); var config = { key: fs.readFileSync('cert/server.key'), cert: fs.readFileSync('cert/server.crt'), ca: fs.readFileSync('cert/ca.crt') }; app.get('/', function(req, res) { res.send('Hello world'); }); https.createServer(config,app).listen(443); 这里是我如何创build我的CA和我的服务器证书: ### CA self signed openssl genrsa -des3 -out ca.key 1024 openssl req -new -key ca.key […]

NodejsencryptionsetEngine

我想加载gost的openssl引擎与crypto.setEngine函数。 唯一的工作方式是指定dylib的完整path(例如“/opt/local/lib/engines/libgost.dylib”)。 但我仍然不能使用加载引擎的摘要。 调用crypto.createSign('md_gost94')失败,出现“未知消息摘要”错误。 AFAIK node.js和捆绑的openssl一起使用。 它包括gost这样的引擎吗? 它应该与外部dylib的引擎工作? 我使用MacOSX 10.10和nodejs v0.12.2。 谢谢! 更新它可以在系统libgost.so模块的Ubuntu 12.04系统上正常工作。 在OSX上,我不得不使用与端口一起安装的openssl,因为系统openssl已经过时了。

相当于OpenSSL -sign操作的Node.js

我试图在Node.js中复制以下操作,而不产生OpenSSL命令,BC,这将需要我写入文件到磁盘。 我已经有私钥,证书和文件在内存中签名,我正在寻找获得签名的文件内容作为缓冲区或string。 我一直在环顾四周,但找不到合适的东西。 有谁知道一个合适的解决scheme? 提前致谢! openssl smime -sign -signer file.crt -inkey file.pem -in file.xml -out file.xml.cms -outform PEM -nodetach

node.js openssl包装(不是cli)

剂量Node.JS有一个openssl绑定/包装不通过shell产生的openssl? 也许一些CPP插件或东西。 我正在寻找一个openssl绑定,而不是一个纯伪装的js库。

将CSR的内容直接传递给openssl ca命令而不是文件

我build立了一个使用OpenSSL的证书颁发机构,在我的原型中一切正常。 现在在我要签署证书签名请求(csr)的步骤中,我需要一种不同的方式来调用该命令: 有要求将签名过程的CSR 内容传递给我的openssl命令而不是文件位置,因为我们不想存储它。 企业社会责任内容来自HTTP,这应该在validation后直接传递给命令。 这是一个使用CSR的文件位置的工作示例,但我无法find直接传递内容的方式。 var signCrtCmd = spawn('openssl', [ 'ca', '-config', './openssl.intermediate.cnf', '-extensions', 'server_cert', '-days', '375', '-notext', '-md', 'sha256', '-in', // Instead of the location below I wan't to pass the content './signing_request.pem', '-batch' ]); 我已经阅读了这里的文档OpenSSL CA 感谢您解决这个问题的任何帮助。

Node.js'crypto.createSign()的有效algorithminputstring

我正在使用一个项目的节点的encryption签名,并一直在试图考虑各种algorithm的起伏。 crypto.createSign()的描述如下所示: 创build并返回使用给定algorithm的Sign对象。 在最近的OpenSSL版本中, openssl list-public-key-algorithms将显示可用的签名algorithm。 一个例子是“RSA-SHA256”。 不幸的是,“RSA-SHA256”不是openssl list-public-key-algorithms的输出值之一(如下所示)。 那么这个函数的有效值是什么,或者如何从下面的列表中提取出来? OpenSSL list result: Name: OpenSSL RSA method Type: Builtin Algorithm OID: rsaEncryption PEM string: RSA Name: rsa Type: Alias to rsaEncryption Name: OpenSSL PKCS#3 DH method Type: Builtin Algorithm OID: dhKeyAgreement PEM string: DH Name: dsaWithSHA Type: Alias to dsaEncryption Name: dsaEncryption-old Type: Alias to […]

如何encryption私钥如OpenSSL?

当我用OpenSSL生成私有椭圆曲线时,使用以下命令: openssl ecparam -name secp521r1 -genkey -noout -out key.pem 我得到这样的东西: —–BEGIN EC PRIVATE KEY—– MIHbAgEBBEGpyKy6t0i6cEdxETKfsXNmFA4oWLQrM1LaPdfiyGs13+DckCjskukK NlbQYBb7gKIAAqj4vbmdCjTkoxnuXToqRKAHBgUrgQQAI6GBiQOBhgAEAHRbQ/Ow rR0fjiLdS+wHgpGX3kIk1IdJwr6m18k8nkta7d6YCho555Tbru+17zrtEMasd5UH YX8PRRtGaCD29aOzASUXOkwrmth4wLRsDQEe4qWAjATVvbw4LDP9Jz92OFXbEPwR P3uNunAQ2grnBjNCXN5yF49nyK1lSZxscxv+OCM/ —–END EC PRIVATE KEY—– 它与我使用NodeJS的Crypto模块encryption钥编码器生成的格式相同。 —–BEGIN EC PRIVATE KEY—– MIHcAgEBBEIBevCX7Zvo2G93UtPEl2ibpz71dXdjN/xMbwZBQwHukZJWwuKtJ8Sm dn21nDV5uEa7mgiBu0X5BVvsN/Wr+TzoAD2gBwYFK4EEACOhgYkDgYYABABaycjM EduL5R+bBY7T5WF+L314mfm2AZkKDs4EDkYWPupzbfE1qsQkjyPjh/JxMRU6nr9w xJ7X9jSA6wy0dHNqSQFP+5SHOuJu32Da21qBIKU9Xaoy0CloGfRjEQAbg5N1h4uw wKdMrY2a34dYn1eEe2YFzHKTFJPzOxyeKsDsFaafng== —–END EC PRIVATE KEY—– 现在,当我用AES256encryption这个命令 openssl ec -aes256 -in key.pem -out encrypted-key.pem 我明白了 —–BEGIN EC PRIVATE KEY—– Proc-Type: 4,ENCRYPTED DEK-Info: AES-256-CBC,96218C0F2D6F661750C994B319DD05FB pdk5WCaaLL8+YU27QjHMRgNkNwgPfgqL2ZNx/73pBDiSekfEKn39XrllE+j0lEA/ […]