Tag: encryption

如何使用NodeJSencryption签署文件?

我不想使用nodeJS来签署一个文件。 为此我有一个p12证书(它包括私钥),一个密码和一个证书。 这里显示如何在ruby中完成: https : //gist.github.com/de4b602a213b4b264706 提前致谢!

在PHP中encryptionstring并在Node.js中解密

我通过Apache和Node.js服务器之间的不安全连接发送数据。 我需要在PHP中encryption数据并在Node.js中解密。 我花了2天试图让它工作,但是我只设法让消息签名工作,没有encryption。 我尝试通过AES128-CBC,AES256-CBC,DES,AES128,AES256作为algorithm,但没有什么效果。 我在PHP中试过这个: $data = json_encode(Array('mk' => $_SESSION['key'], 'algorithm' => 'SHA1', 'username' => $_SESSION['userid'], 'expires' => $expires)); $payload = openssl_encrypt($data, 'des', '716c26ef'); return base64_encode($payload); 在Node.js中: var enc_json = new Buffer(response[1], 'base64'); var decipher = crypto.createDecipher('des', '716c26ef'); var json = decipher.update(enc_json).toString('ascii'); json += decipher.final('ascii'); 除了错误的解密数据,我得到这样的错误: TypeError: error:0606508A:digital envelope routines:EVP_DecryptFinal_ex:data not multiple of block length […]

使用NodeJS解包PKCS#7数据有效载荷?

我正在为iOSdevise一个MDM NodeJS服务器。 在Apple文档中,给出了下面的ruby代码: p7sign = OpenSSL::PKCS7::PKCS7.new(req.body) store = OpenSSL::X509::Store.new p7sign.verify(nil, store, nil, OpenSSL::PKCS7::NOVERIFY) signers = p7sign.signers NodeJS中的等价物是什么? 这个想法是访问包含一个xml plist的p7sign.data 。 这可能使用crypto或外部节点库( ursa等)?

Node.js和密码安全性:三个问题

我从来没有写过一个用户authentication系统,为了这个项目,我需要平衡安全性和效率(这意味着我不能花费数百个工时来处理安全问题,但是我需要保存密码和login信息安全)。 我正在使用Node.js与expression式框架和护照进行身份validation和会话。 我迄今所做的研究显示了三个要解决的问题。 在今天之前,我几乎不知道如果对这些问题有什么共同的解决scheme,几个小时的随机啄食这些研究并不能使我对我find的答案的完整性有信心。 问题: 不要在数据库中存储未encryption的纯文本密码(可能的答案:salt /散列在服务器上的密码并将散列存储在数据库中。) 不要将纯文本密码通过非安全的http连接(可能的答案:A – 只使用Https进行身份validation过程,之后使用http。B – 在login页面向用户发送随机盐,密码客户端,然后取消哈希和重新encryption数据库存储。) 不要使用GPU以每秒700,000,000个密码破解的弱encryption方法。 (可能的答案:bcrypt) 这些只是我在3个小时的研究中find的最明智的答案。 我不知道这些是否足够,它们的弱点是什么,或者有什么替代scheme。 我很感激任何进一步的洞察力(另外请注意:我甚至不确定 – https传输是否足够保护密码?)

AES256encryption在node.js和objective-c之间得到不同的结果

1.Node.js var crypto = require('crypto'); var key = "my password"; var text = "text to encrypt"; var cipher = crypto.createCipher('aes-256-cbc',key); var crypted =cipher.update(text,'utf8','base64'); crypted+=cipher.final('base64'); 结果: ZeYCYOrR / w7qSAZVYht8 + Q == 。目的-C { NSString *key = @"my password"; NSString *text = @"text to encrypt"; NSData *plain = [secret dataUsingEncoding:NSUTF8StringEncoding]; NSData *cipher = [plain AES256EncryptWithKey:key]; NSLog(@"%@\n", […]

在java中encryptionstring,在node.js中解密,错误:解密不好

我试图encryption一个string在Java中,将其发送到我的node.js服务器,并解密它。 但是,当我试图做到这一点时,我试图解密时不断得到错误。 Javaencryption: String privateKey = "someprivatekey"; String data = "dataToEncrypt"; DESKeySpec keySpec = new DESKeySpec(privateKey.getBytes("UTF-8")); SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES"); SecretKey key = keyFactory.generateSecret(keySpec); byte[] dataToBytes = data.getBytes("UTF-8"); Cipher cipher = Cipher.getInstance("DES"); cipher.init(Cipher.ENCRYPT_MODE, key); // send this string to server String encryptedStr = Base64.encodeToString(cipher.doFinal(dataToBytes), 0); node.js解密: var privateKey = 'someprivatekey'; var decipher = crypto.createDecipher('des', privateKey); […]

Node.js – 在密码模块中设置填充

我一直在查看节点中的encryption模块的文档,我试图找出如何设置填充进行对称encryption时。 我试图使用AES-128-ECB和PKCS5填充。 我看不到任何可以指定填充的地方。 我当然希望这是可以做到使用这个库。 如何在encryption模块中指定对称encryption的填充?

用nodejs crypto与php的mcrypt解密blowfish-ecb

我试图在Node.js中使用内置的encryption库来解码以下base64编码的密文 2tGiKhSjSQEjoDNukf5BpfvwmdjBtA9kS1EaNPupESqheZ1TCr5ckEdWUvd+e51XWLUzdhBFNOBRrUB5jR64Pjf1VKvQ4dhcDk3Fdu4hyUoBSWfY053Rfd3fqpgZVggoKk4wvmNiCuEMEHxV3rGNKeFzOvP/P3O5gOF7HZYa2dgezizXSgnnD6mCp37OJXqHuAngr0pps/i9819O6FyKgu6t2AzwbWZkP2sXvH3OGRU6oj5DFTgiKGv1GbrM8mIrC7rlRdNgiJ9dyHrOAwqO+SVwzhhTWj1K//PoyyzDKUuqqUQ6AvJl7d1o5sHNzeNgJxhywMT9F10+gnliBxIg8gGSmzBqrgwUNZxltT4uEKz67u9eJi59a0HBBi/2+umzwOCHNA4jl1x0mv0MhYiX/A== 它似乎与PHP的mcrypt函数使用stringtypeconfig.sys^_-作为关键,如通过input值http://www.tools4noobs.com/online_tools/decrypt/和selectBlowfish,ECB,Base64解码。 但是,当我在Node.js中运行以下代码: var crypto = require('crypto'); var data = "2tGiKhSjSQEjoDNukf5BpfvwmdjBtA9kS1EaNPupESqheZ1TCr5ckEdWUvd+e51XWLUzdhBFNOBRrUB5jR64Pjf1VKvQ4dhcDk3Fdu4hyUoBSWfY053Rfd3fqpgZVggoKk4wvmNiCuEMEHxV3rGNKeFzOvP/P3O5gOF7HZYa2dgezizXSgnnD6mCp37OJXqHuAngr0pps/i9819O6FyKgu6t2AzwbWZkP2sXvH3OGRU6oj5DFTgiKGv1GbrM8mIrC7rlRdNgiJ9dyHrOAwqO+SVwzhhTWj1K//PoyyzDKUuqqUQ6AvJl7d1o5sHNzeNgJxhywMT9F10+gnliBxIg8gGSmzBqrgwUNZxltT4uEKz67u9eJi59a0HBBi/2+umzwOCHNA4jl1x0mv0MhYiX/A=="; var decipher = crypto.createDecipher('bf-ecb', 'typeconfig.sys^_-'); data = decipher.update(data, "base64", "utf8"); data += decipher.final("utf8"); console.log(data); 我得到垃圾输出: y : d ( Q i z1 4 k ( a5 u 73c/ (ֻ ) fȠ ec -<z 8 ( -L ԛ I 1L* u 4 j- Чh쭊@\P)?޼ […]

Node.js:crypto.pbkdf2密码为hex

我目前使用以下设置注册新用户: // creates a new user app.post('/users', function(req, res) { // create new user var user = new User(); // assign post user.username = req.body.username; user.email = req.body.email; crypto.randomBytes(32, function(err, buf) { if (err) throw err; user.salt = buf.toString('hex'); crypto.pbkdf2(req.body.password, user.salt, 25000, 512, function(err, encodedPassword) { if (err) throw err; user.password = (encodedPassword.toString('hex')); // this […]

为什么crypto.createHash在新版本中返回不同的输出?

问题 我有使用crypto.createHash生成md5散列的node.js模块。 最近我注意到crypto模块生成的hash在新版本中是不同的: 码 require('crypto').createHash('md5').update('¥').digest('hex') Node.js v0.10.0 输出: ab3af8566ddd20d7efc9b314abe90755 Node.js v6.1.0 输出: 07625e142e4ac5961de57472657a88c1 题 我想知道是什么原因,在新版本,我该如何解决这个问题? 更新 GitHub上的类似问题: https://github.com/nodejs/node/issues/6813 https://github.com/node-xmpp/client/issues/206