Tag: encryption

如何在NodeJS中创buildencryption和解密函数?

我需要在我的NodeJS应用程序中创buildencryption和解密function。 任何人都可以帮助,并指出我在正确的方向吗?

使用node.js通过HTTP将文件encryption为string

我正在寻找关于我想要做什么的build议。 目前,我使用服务器A通过HTTP从服务器B请求文件。 服务器B检查所请求的path是否存在,并通过HTTP以stringforms返回文件内容。 一切都清楚了。 我想要做的是encryption传输,所以在将文件内容发送回服务器A之前,我想用服务器B能够反向的方式来保护它。 我想快速,安全(盐),而不是太大。 (这些文件可以包含数千个字符) 什么是最好的方法来实现呢? 我在两台服务器上都使用node.js。 我也在考虑添加一个身份validation,并通过HTTPS来保护内容,假设保护(encryption/等等)不能被破坏,是否有用? (Auth可以限制请求,避免使用太多的带宽,但HTTPS真的值得吗?) 我不太了解隐藏信息,可能不是正确的用法,请引导我。

json_encode在encryption的string上不起作用

我有一点麻烦,因为我想encryption一些表单数据,然后将它们发送到我的nodejs服务器以json格式放入数据库。 我的问题:我似乎无法发布数据,一旦它被encryption。 我可以发布jsonstring很好,但没有更多: 我的代码: $rsa->loadKey($keydata); $rsa->setEncryptionMode(CRYPT_RSA_ENCRYPTION_PKCS1); $encrypted = $rsa->encrypt("test"); $jsonArray = array( 'crypt' => $encrypted ); $jsonArrayEncoded = json_encode($jsonArray); echo $jsonArrayEncoded; $ch = curl_init('https://……….'); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json')); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonArrayEncoded); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $response = json_decode(curl_exec($ch), true); curl_close($ch); 我甚至没有得到回声输出。 但string似乎得到encryption,因为我可以回声(很多charset错误+一些随机的字母和数字),如果我解码在PHP匆匆我得到正确的结果以及。 我没有得到任何控制台警告或错误,无论是在铬,也不是Firefox。 任何我做错了? (很确定有) e:我使用它作为encryption库: http : //phpseclib.sourceforge.net/rsa/examples.html#encrypt,enc1 编辑2:好,作为build议在我把string转换为UTF8的评论,但现在似乎是太长,不能用我的密钥解密…坚韧o只encryption单词“testing”… 我想我必须深入挖掘… 如果有人知道:对于解密,我使用以下代码的node.js的Ursa模块: var […]

节点encryption解码stream抛出EVP_DecryptFinal_ex:如果stream将被中断,则错误的最终块长度

我有一个node.js客户端,从另一个主机下载和解密AESencryption文件。 var base64 = require('base64-stream'); var crypto = require('crypto'); var aes = crypto.createDecipher('aes-256-cbc', crypto.createHash('sha256').update(pass).digest('hex')); // file stream var file = fs.createWriteStream(params.target); var base64reader = base64.decode(); response.pipe(base64reader) // decode base64 .pipe(aes) // decrypt .pipe(file); // write in file // on last data chunk received: file load complete aes.on('end', function (chunk) { if (typeof params.success !== 'undefined') […]

Node.JSencryption解密不起作用

我有一个function,如: var Crypto = require('crypto'); var string_to_encode = "some number or string"; var encrypted_string = ""; var des_key = new Buffer("key string here", "base64"); var des_iv = new Buffer(0); var des_encryption = Crypto.createCipheriv("DES-EDE3", des_key, des_iv); encrypted_string = des_encryption.update(string_to_encode, "utf8", "base64"); console.log(string_to_encode+" => ["+encrypted_string+"]"); 其中输出一个短的encryptionstring。 但是当我尝试用下面的方法来解决 var Crypto = require('crypto'); var string_to_decode = "encrypted string from […]

解密.update上的encryption错误

我正在为Node项目编写一个JavaScript模块。 我得到一个非常模糊的错误 protocol\Parser.js:82 throw err; TypeError: error:0000000:lib(0):func(0):reason(0) at Decipher.Cipher.update (crypto.js:279:27) 以下是我的javalogin.js文件。 错误似乎发生在decipher.update(rows[i].CC, 'hex', 'utf8'); 线。 我有一些控制台打印出来。 console.log('DB UserName:', rows[i].UserName); //returns correct username console.log('DB CC: ', rows[i].CC); //returns 2bf9kdk02kdnf3dk (correct CC hash on db) JavaLogin.js: var mysql = require('mysql'); var crypto = require('crypto'); var sha = require('sha1'); var algorithm = 'aes256'; // or any other algorithm […]

如何从哈希中获得一个数字

我试图在node.js创build0到1000000 (100万)之间的随机数。 散列是: var hash = crypto.createHmac('sha512', "value").update("another value").digest('hex'); //d89c8a02a8b4e2461eeddcc3d8e85f2dfdab62968a329840ec5df2c0be2852eb9321cb35ff8fd5f43e97857a618d35edf9ba7fff56319c56eae4f8509f02e7eb 随机数 var number = parseInt(hash.substring(0, 5), 16); // 887240 但有时我得到的数字大于100万,我怎么能防止这个?

node.jsencryption模块不能encryption16个以上的字符

我对密码学的所有术语还比较陌生,所以请原谅我对这个问题的无知。 使用node.js的encryption模块时,发生了一些奇怪的事情。 它只会encryption正好16个字符。 任何更多,它失败,这个错误消息: TypeError: error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt at Decipher.Cipher.final (crypto.js:292:27) at decrypt (C:\node_apps\crypto_test\app.js:39:21) at C:\node_apps\crypto_test\app.js:16:21 at Interface._onLine (readline.js:200:5) at Interface._line (readline.js:531:8) at Interface._ttyWrite (readline.js:760:14) at ReadStream.onkeypress (readline.js:99:10) at ReadStream.emit (events.js:98:17) at emitKey (readline.js:1095:12) at ReadStream.onData (readline.js:840:14) 我使用的代码如下所示: var rl = require('readline'); var crypto =require('crypto'); var interface = rl.createInterface({ input: process.stdin, output:process.stdout }); interface.question('Enter […]

如何从nodejs中的守护进程产生gpgsubprocess?

如果我正常运行应用程序,我可以产生一个gpgsubprocess并正常解密一个文件。 /app.js var spawn = require('child_process').spawn; function decrypt() { var gpg = spawn('gpg', ['–no-use-agent', '–passphrase', 'My Passphrase', './test.pdf.asc']); gpg.on('close', function (code) { console.log(code); // code == 0 }); } decrypt(); 按照常规stream程运行app.js并解密文件 node app.js 然而,当我尝试运行app.js守护进程使用pm2,暴发户等…我得到了错误代码(2),无法解密文件运行app.js aa守护进程 pm2 start app.js

使用stdin和stdout解密nodejs中的文件

作为nodechool的练习,我必须使用stdin和stdout解密文件。 所以我做了这个: var crypto = require('crypto'); var stream = crypto.createDecipher('aes256', process.argv[2]); var step1 = process.stdin.update(stream); var step2 = stream.final(); console.log(step2) //step2.pipe(process.stdout.toString()); 但现在我看到这个消息:TypeError:不是一个string或缓冲区 如何解决这个好方法?