Tag: 密码学

AES-128-GCM在Node V6上validationIV吗?

鉴于此代码: const bufIV = Buffer.alloc(16); const cipher = crypto.createCipheriv(CIPHER, mykey, crypto.randomFillSync(bufIV)); let encrypted = cipher.update(doc, 'utf8', ENCODING); encrypted += cipher.final(ENCODING); IV也会被authentication吗? 这篇文章的结尾似乎表明,它需要,但我真的不明白这是如何工作的。 使用好的IV并不意味着你的密码是安全的。 你也必须authentication你的密文。 当你这样做时,不要忘记validationIV。

php和node.js之间的pbkdf2差异

我使用Node.js使用pbkdf2生成密码散列并将它们存储到数据库中。 另外我正在做一些用PHP制作的网页,让你用户重置他们的密码,所以除非我在node.js中使用web服务来构build哈希,我想在2个系统中运行该algorithm。 不幸的是,似乎我得到了不同的结果,我不能混合这两个库。 我在node.js中使用的代码使用模块password-hash-and-salt,基本上调用crypto.pbkdf2,而php使用hash_pbkdf2。 这些是我用来testing它的脚本: PHP: <?php $password = $argv[1]; $iterations = 10000; $length = 64; $salt = mcrypt_create_iv($length, MCRYPT_DEV_URANDOM); $key = hash_pbkdf2("sha256", $password, $salt, $iterations, $length,true); echo "HASH: pbkdf2\\$" . $iterations . "\\$" . bin2hex($key) . "\\$" . bin2hex($salt). "\n"; echo "Key length: " . strlen(bin2hex($key)) . "\n"; echo "Hash length: " . strlen(bin2hex($salt)) […]

从Node中的对象生成一致的sha256哈希

我有一个对象,我想在节点sha256散列。 该对象的内容是简单的Javascripttypes。 举例来说,让我们说: var payload = { "id": "3bab3f00-7d55-11e7-9b0a-4c32759242a5", "foo": "a message", "version": 7, }; 我创build一个像这样的散列: const crypto = require('crypto'); var hash = crypto.createHash('sha256'); hash.update( … ).digest('hex'); 问题是,要传递什么更新? crypto的文档说你可以传递一个<string> | <Buffer> | <TypedArray> | <DataView> <string> | <Buffer> | <TypedArray> | <DataView> <string> | <Buffer> | <TypedArray> | <DataView> ,这似乎表明一个对象是不是一件好事情通过。 我不能使用toString()因为它会打印"[object Object]" 。 我可以使用JSON.stringify,但是我已经在其他地方读过,stringify的输出不能保证对于相同的input是确定性的。 还有其他的select吗? […]

密码模块中的6个随机字节可以产生的最大值是多less?

如果我使用parseInt(crypto.randomBytes(6).toString('hex'), 16); ,我能得到的最大价值是多less? 我的最终目标是获得一个浮点值(如Math.random() ),所以我想分割从parseInt(crypto.randomBytes(6).toString('hex'), 16);得到的结果parseInt(crypto.randomBytes(6).toString('hex'), 16); 由最大值。

尝试在node.js中获取AESencryptionstring以匹配.net中的encryption值

我试图encryptionnode.js中的一个值,我可以在.net中解密。 我已经给他们的代码,在事物的.net方面用于encryption值,我试图在我的node.js脚本中实现相同的encryption值。 我绝对不是一个encryption爱好者,所以请帮我弄清楚我哪里出错了。 我的node.jsencryption值与.netencryption值不匹配,而且我的node.jsencryption值实际上每次运行脚本时都不会返回相同的值。 这是.netencryption逻辑: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Security.Cryptography; using System.IO; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { Console.WriteLine("start:"); string key = "mysecretkey"; string secret = "encryptThisMessage"; string crypto = EncryptString(secret, key); Console.WriteLine(crypto); string returnValue = DecryptString(crypto, key); Console.WriteLine(returnValue); Console.ReadKey(); } /// <summary> /// Encrpyts […]

使用node.js的密码学有问题

新手问题重新:nodejs和cryto var crypto = require('crypto'); var User = { user1: { name: 'bob', salt: 'randomSalt', password: sha1('mypass', this.salt) } }; function sha1(pass, salt) { return crypto.createHmac('sha1', salt).update(pass).digest('hex'); } 为什么我有console.log(User.user1.password == sha1('mypass', 'randomSalt') //false ?

您可以使用browserify来要求节点bcrypt客户端,然后将散列发送到服务器?

您可以使用browserify来要求节点bcrypt客户端,然后将散列发送到服务器? 这听起来真的很棒,或者它可以提供更高的安全性,然后通过SSL将明文传递给服务器? 如果我们通过websockets传递明文呢? 谢谢!

如何在NodeJS中使用aes-256-ecb正确encryptionstring并使用OpenSSL的命令行解密?

我正在尝试使用aes-256-ecb密码通过node.js的内置encryption库encryption长UTF-8编码的string。 波纹pipe是我在Node.js(v0.10.24)中写入testing的encryption代码,以及OpenSSL(OpenSSL 1.0.1 14 Mar 2012)命令行的相应输出和解密命令。 使用node.jsencryption var crypto = require('crypto'); var cipher = crypto.createCipher('aes-256-ecb','password'); var plaintext = [ 'this is a very long long long long long long', 'long long long long long long long long long', 'long long long long long long string!!!!!!!!' ].join('') console.log(cipher.update(plaintext,'utf8', 'base64') + cipher.final('base64')) 产量 XBnU6WZ9wr2GdA1YWZVhsG+mHQ0xlXXc8rAFEud6I/PqfFZL6Pdit7Sm8v+ViKNZmhgTzi7zfg8GHKFntkCDuj6F54TDaWKAdJRftLP9I+22jiKRvYtpD4SDV2oIy93MM5IMbSoBRvXayNF8H9FQnhACM5MHhHX1pLiR4yCg/l6iHH2BDLrwCSifGcGCaQYx 解密使用OpenSSL echo -n […]

primecoin? Node.JS vs Haskell的适用性

当我把它和坎宁安连锁店联系起来的时候,我正在阅读有关优质币的内容 现在我知道什么是一个坎宁汉连锁了,我找不到一个好语言的实现,我需要实现它。 我应该使用Node.JS吗? 我正在考虑使用Haskell,但是我不得不考虑很多。 我认为Node.JS会更好地工作,因为它有更好的数值支持,并且我可以使用socket.io将Node.JS网站卸载到使用我的网站(本质上是pay2view)的客户端背景。 例如:我认为haskell适合这个的一个原因是因为你可以做一个懒惰的函数,将stream出每个链的价值。 也运行裸机,没有浏览器,但我不知道这是一个很大的优势。

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 = […]