Tag: encryption

nodejs:encryption/解密的节点模块?

如果访问者来自特定的其他网站(B),我希望网站(A)只能工作。 最初,我想到了使用document.referrer ,但显然它可以很容易地伪造。 猜测,我没有别的select,只能将网站A的密钥传递给网站B. 这两个网站都在node服务器上运行。 我已经传递了两个参数(比如param1 n param2 ),所以认为这个关键字以及两个站点之间共享的一些常见string(认为称为private key )会在站点A上产生某种encryption的代码,并将其添加为第三个参数并发送到站点B. 在站点B中,我将解密第三个参数(使用private key )并检查它是否与param1和param2匹配,然后允许通过,否则返回401 。 我从来没有做过这样的事(安全相关的东西),这种方法是正确的吗? 有没有节点模块已经提供这种encryption和解密? 最后,有没有build立私钥的build议?

Node.js和Mongodb安全+encryption选项的源代码

我打开这个线程,因为我很难决定我的项目有一些问题。 问题是: encryption源代码文件(不是混淆,需要可以运行的encryption)。 encryption存储在mongodb中的文档,主要是用户名和密码。 Mongodblogin – 是否可以要求用户名和密码打开连接到服务器? 一点信息:我的项目将被安装在客户服务器上,所以代码不可见并希望不可破解(最低安全性)是非常重要的。 1 – 对于第一个项目,我find了JXCORE,看起来很有前途,但是我找不到在生产中使用它的用户的certificate或评论。 任何人可以推荐其他方法? 或者如果任何人都可以查看我列出的选项,我会appriciate它。 2 – 为了encryption,我想使用AES256,我发现图书馆的crypto-js能够满足要求。 不幸的是,它不提供node.js的帮助(我找不到)。 例如,当我运行这个代码,我想看到encryption和解密的项目: var AES = require("crypto-js/aes"); var temp = AES.encrypt("Message", "secret password").ciphertext.toString(); console.log(temp); console.log(AES.decrypt(temp, "secret password")); 只显示encryption的密文,不知道如何访问解密的文本。 在旁边注意 ,有没有人推荐使用SHA3与AES256结合? 什么是确保用户名和密码mongodb DB的build议方法? 如果您在node.js中获得了crypto-js的文档链接或有用的教程,请在评论中链接。 我的JS技能不是专业人士,所以它可能在那里,我看不到它,所以如果这是一个noob线程道歉。 谢谢。

'Crypto'node.js模块:找不到软件包错误的软件包主文件

我已经将crypto模块( npm install crypto ) npm install crypto到了我的node.js项目中,但是当启动我的应用程序时,出现了这个错误: Error: Cannot find package main file for package: /opt/PropertyFinder/node_modules/crypto at DependecyGraph.resolveDependency (/opt/PropertyFinder/node_modules/react-native/packager/react-packager/src/DependencyResolver/haste/DependencyGraph/index.js:199:13) at /opt/PropertyFinder/node_modules/react-native/packager/react-packager/src/DependencyResolver/haste/DependencyGraph/index.js:117:22 at Array.forEach (native) at collect (/opt/PropertyFinder/node_modules/react-native/packager/react-packager/src/DependencyResolver/haste/DependencyGraph/index.js:115:25) at /opt/PropertyFinder/node_modules/react-native/packager/react-packager/src/DependencyResolver/haste/DependencyGraph/index.js:130:9 at Array.forEach (native) at collect (/opt/PropertyFinder/node_modules/react-native/packager/react-packager/src/DependencyResolver/haste/DependencyGraph/index.js:115:25) at /opt/PropertyFinder/node_modules/react-native/packager/react-packager/src/DependencyResolver/haste/DependencyGraph/index.js:130:9 at Array.forEach (native) at collect (/opt/PropertyFinder/node_modules/react-native/packager/react-packager/src/DependencyResolver/haste/DependencyGraph/index.js:115:25) at /opt/PropertyFinder/node_modules/react-native/packager/react-packager/src/DependencyResolver/haste/DependencyGraph/index.js:130:9 at Array.forEach (native) at collect (/opt/PropertyFinder/node_modules/react-native/packager/react-packager/src/DependencyResolver/haste/DependencyGraph/index.js:115:25) at /opt/PropertyFinder/node_modules/react-native/packager/react-packager/src/DependencyResolver/haste/DependencyGraph/index.js:130:9 at […]

mongodb:encryption字段上的唯一索引

我正在用mongodbencryptionSSN。 但是,我需要使用SSN作为唯一的标识符,以确保具有该SSN的人不会插入重复。 所以基本上我想在保存之前检查重复的SSN。 不过,我不确定是否可以在使用AESfunctionencryption此字段后执行此操作。 如果我encryption并签名与AES相同的2个string,输出是否仍然相同? 如果不是,那么将会是一个好的select? 我曾经考虑过对SSN进行哈希处理,但SSN似乎有这么小的熵(它的9位数字,其中有些是可以预测的)。 如果我盐,我失去了在这个领域分配一个独特的索引的能力,除非我使用一个静态的盐,这并没有多大的作用。 加成 我将使用node.jsencryption核心模块在应用程序级进行encryption。

在Node.js中相当于Java PBEWITHSHA1ANDDESEDEencryption?

我有inheritance的Java Web应用程序,我应该将其转换为node.js. 其中一部分是数据的encryption。 在Java中,它就像附加代码一样完成。 我会怎么做在节点使用encryption? 密码学方面根本不强,对不起,如果这是真正的基本问题,并提前感谢。 private final String ALGORITHM = "PBEWITHSHA1ANDDESEDE"; private final int ITERATION_COUNT = 20; private final byte[] SALT = { (byte)0xc7, (byte)0x73, (byte)0x21, (byte)0x8c, (byte)0x7e, (byte)0xc8, (byte)0xee, (byte)0x99 }; 然后… PBEKeySpec pbeKeySpec = new PBEKeySpec("password".toCharArray()); SecretKeyFactory keyFac = SecretKeyFactory.getInstance(ALGORITHM); SecretKey pbeKey = keyFac.generateSecret(pbeKeySpec); PBEParameterSpec pbeParamSpec = new PBEParameterSpec(SALT, ITERATION_COUNT); // Create […]

node.jsencryption是否使用GCM模式的固定标签大小?

我正在node.js中以GCM模式实现密码scheme。 为了检查完整性,我必须在密文中附加/附加GCM标签。 不过,我不确定标签有多大! 在encryption++维基上 ,我读到的大小可能会有所不同,它实际上是一个GCM模式的参数。 引自维基,重点是我的: 双方必须提供和使用的参数是: 密钥和密钥大小 iv和iv大小 标签大小 但是,在节点文档中 ,没有关于标签大小的信息。 只是标签存在。 从文档引用: cipher.getAuthTag() 对于已validation的encryption模式(当前支持:GCM),此方法返回一个表示从给定数据计算出的validation标记的缓冲区。 在使用最后的方法完成encryption之后应该调用! 我是否应该期望标签大小不同,只需将标签大小和密文一起保存? 或者我可以假设标签大小始终小于128位,并在左侧填充零位?

Microsoft Azure密钥保pipe库可以进行对称encryption吗?

我希望澄清和build议如下: 我的项目要求我在Nodejs环境中使用对称数据encryption(使用AES)来保护数据库(mongodb)上的数据。 理想情况下,我想这样做如下: 将对称密钥作为密钥存储在Azure密钥保pipe库中,然后对该保pipe库进行“encryption”调用,以使用密钥对数据执行AESencryption。 encryption的数据在对我的应用程序的响应中发送,然后以encryption的forms存储在数据库中。 在阅读MS Azure的文档和相关博客文章后,我感到困惑,有些消息来源声称支持对称密钥encryption,但是没有官方文档。 任何人都可以build议,这是否是Azure Key Vault支持的所有关键types和algorithm的详尽列表? https://msdn.microsoft.com/en-us/library/azure/dn903623.aspx#BKMK_KeyTypes 这似乎也可能是一个选项( http://www.nuget.org/packages/Microsoft.Azure.KeyVault.extensions ),但只适用于.NET环境。 对Nodejs的任何爱? 所以 – 我问的是“MS Azure的密钥保pipe库是否支持对称(AES)密钥/encryption,如果是,那么这是正式logging在哪里? 如果当前不支持对称密钥/encryption,任何人都可以提供一种替代方法来实现上述的方法吗? 非常感谢,非常感谢。

Java BouncyCastle中的确定性AES-CTR?

我一直在Node中使用aes-js来使用AES计数器模式进行encryption/解密。 正如你可以在例子中看到的,我使用它没有填充,我可以指定哪个块(在这种情况下,0)我想开始。 var aesCTR = new aesjs.ModeOfOperation.ctr(keyBytes, new aesjs.Counter(0)); var encryptedBytes = aesCTR.encrypt(plaintextBytes); 我想在Java中重现上面的相同行为。 我正在使用BouncyCastle ,如下面的例子。 SecretKeySpec key = new SecretKeySpec(keyBytes, "AES"); Cipher cipher = Cipher.getInstance("AES/CTR/NoPadding", "BC"); cipher.init(Cipher.ENCRYPT_MODE, key); byte[] encrypted=cipher.doFinal(msgBytes); 但是这个实现似乎没有输出与上面相同的值。 另外,似乎每次运行都会自动增加计数器(在这种情况下不合需要的行为)。 有没有一种方法来匹配使用Java的Node JS实现?

使用ECDH和nodejsencryption解密秘密

这是nodejs文档示例: const crypto = require('crypto'); const alice = crypto.createECDH('secp256k1'); const bob = crypto.createECDH('secp256k1'); // Note: This is a shortcut way to specify one of Alice's previous private // keys. It would be unwise to use such a predictable private key in a real // application. alice.setPrivateKey( crypto.createHash('sha256').update('alice', 'utf8').digest() ); // Bob uses a newly generated […]

nodejs中的三重DES与通过openssl相比

以下示例中xxd -p拳头在hex的末尾添加了“0a”。 不知道为什么,这就是为什么你注意到我在opensslencryption中使用第一个参数$1 ,我已经手动生成了hex,并插入它。 #!/bin/bash KEY=`echo $1 |xxd -p`; openssl enc -e -des-ede -nosalt -K $1 -iv "0000000000000000" -in $2 -out $3; 这样称呼: sh encrypt.sh 583645585458304c4f39524756514456 settings.conf settings.enc 在node.js中,但我使用以下encryption: const key = Buffer.from('X6EXTX0LO9RGVQDV'); module.exports = (file, callback) => { const iv = new Buffer(0), cipher = require('crypto').createCipheriv('des-ede', key, iv); callback(null, cipher.update(file, 'utf8', 'binary')); } …并触发这样的: […]