Tag: encryption

解密来自PHP RIJNDAEL_128 CBC的node.js中的string

我试图解密一个string,以前在CBC模式下使用PHP RIJNDAEL_128使用node.jsencryption第三方软件。 以下是沙箱中以下PHP代码的交互式链接,您可以自己编译并查看。 http://sandbox.onlinephpfunctions.com/code/504a7d052c5b123fac8103a073c05c2ff5f80571 PHP源代码: <?php class CryptClass{ private $key; public function __construct($key){ $this->key = $key; } public function cryptage($message){ $key = base64_decode($this->key); $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC); $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); $ciphertext = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $message, MCRYPT_MODE_CBC, $iv); $ciphertext = $iv . $ciphertext; return base64_encode($ciphertext); } public function decryptage($message){ $key = base64_decode($this->key); $iv_size2 = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, […]

将Javaencryption代码转换为NodeJS

我正在NodeJS中实施沃尔玛API 。 沃尔玛只提供JAVA的例子。 我遇到的问题正确。 与使用它们提供的Java可执行文件相比,我的签名更长,不被接受。 我会很感激任何帮助。 即使搞清楚沃尔玛提供的秘密是什么格式也会有所帮助。 这里是工作的Java代码: import org.apache.commons.codec.binary.Base64; import java.security.KeyFactory; import java.security.PrivateKey; import java.security.Signature; import java.security.spec.PKCS8EncodedKeySpec; public class SHA256WithRSAAlgo { private static String consumerId = "b68d2a72…."; // Trimmed for security reason private static String baseUrl = "https://marketplace.walmartapis.com/v2/feeds"; private static String privateEncodedStr = "MIICeAIBADANBgkqhkiG9w0BAQEFAA……"; //Trimmed for security reasons public static void main(String[] args) { […]

NodeJS aes解密不起作用

我使用AES的在线工具进行encrpyt。 我正在使用我的模块进行解密。 但是我得到不一样的结果。 为什么? 我用这些工具之一进行encryption: https://www.browserling.com/tools/aes-encrypt https://www.tools4noobs.com/online_tools/encrypt/ 这是我提供的数据: 这是encrpyt的文本: Hello World 这是密码: 12345 这是该工具的结果: U2FsdGVkX19HLG+YDMe3kYl+MYwEMlnC5mK78s3rZZg= 现在我尝试使用节点来解密它,并且不给我相同的结果。 但一切工作welll var crypto = require('crypto'), algorithm = 'aes-128-ctr', password = '12345'; module.exports.decrypt=function(text){ var decipher = crypto.createDecipher(algorithm,password) var dec = decipher.update(text,'base64','utf8') dec += decipher.final('utf8'); return dec; } text=module.exports.decrypt('U2FsdGVkX1+OOp0KE3lv6qcKQeS/JDFPF8YhgdU131o=') text 我试图改为AES-192,并得到同样的问题。 更新:(基于zaph响应) 这是我在这里input的新数据: https : //www.tools4noobs.com/online_tools/encrypt/ 键:0123456789abcdef(16字节)Rijndael-128。 模式:CBC。 编码:hex。 这是结果:8b25e846b6a2d52ad87f38f8134906c3 我无法解密它。 […]

使用NodeJS服务器进行文本散列的安全性

我有一个NodeJS服务器,我需要从客户端散列密码。 由于NodeJS应用程序没有编译,如果我用一种语言编写哈希进程,从中生成一个处理从我的NodeJS应用程序调用的进程的二进制文件,或者如果服务器受到攻击,犯罪者能够逆向处理哈希处理的二进制文件,就像从我的NodeJS应用程序的JS中读取一样简单。

Node.js使用HTTP GET实现open.epic单点login?

HTTP GET是open.epic为单点login提供的方法之一。 但是,文档有点模糊,并没有给出一个解密的好的分步过程。 根据他们的文档 (注意你必须创build一个login才能访问此链接): 我们使用128位AES,CBC密码模式和PKCS7填充(这相当于我们使用的PKCS5)。 我们使用一个空的IV。 另外,我们使用微软的密钥派生algorithm,如此处的注释部分所述 。 然后,评论概述了一个algorithm,但是没有任何例子。 有没有人在node.js中实现了这一点,并可以给出一个代码示例?

数字签名与node.jsencryption

有人可以提供一个关于如何使用node.js实现数字签名的基本演练吗? 我GOOGLE了,但没有得到它呢。 说,我有一个API,我想签署和validation每个HTTP请求和它的响应。 这就是我目前的想象,请纠正我错在哪里: 1)我需要为客户端生成一个足够随机的密钥,用于签名请求; 2)生成的签名(通过头文件提供)是使用该string的密钥哈希encryption的,该哈希必须包括: 请求主体散列(防止篡改); 时间戳; 随机数; url; HTTP动词 然后,服务器将能够检查消息的真实性。 问题: 1)在nonce(一些随机值)和一个时间戳(我读过一个同时使用两者的post被build议)之间的上下文有什么区别? 2)我是否需要将eTag标头包含在该string中? 3)还应包括上面未列出的其他内容吗? 4)我是否应该在API服务器上保留与客户端相同的密钥,并使用它解密并检查请求,或者应该存储在API服务器上的密钥和服务器上存储的与API通信的密钥私钥 – 公钥对? 如果他们确实需要成为一个私钥 – 公钥密钥对,那么我如何使用公钥encryption私钥(反之亦然)? Plz,纠正我描述中的错误,并补充,我错过了什么。 谢谢。

在哪里存储有关数据?

我有2个NodeJS应用程序,他们交换一些数据。 数据通过AESencryption。 目前AES KEY在客户端和服务器的JavaScript代码中被硬编码。 问题是:什么是最佳实践? 我在哪里存储在客户端/服务器的密钥? 这两款应用都是100%的控制台应用。 (没有用户/浏览器交互)。 更新:我使用的术语客户端/服务器。 因为 – 对我和关于应用程序。 逻辑它的服务器/客户端关系。 但是,但应用程序。 实际上是在两个单独的AWS服务器实例上运行的。 我甚至可以在两个实例之间进行IP限制。 因此,任何人都不能访问其他AWS RDP帐户以及通过两个实例通过端口进行通信的实例… 他们通过networking套接字连接交换数据,有时候他们也会访问第三个实例运行的HTTP API …所以这是足够安全的钥匙硬编码或我应该把它们放在哪里?

我对密码散列有什么误解?

这是我的理解,一个哈希函数将始终返回相同的结果时,提供相同的数据。 但是我一直在使用libsodium(通过节点钠),这不是发生了什么事情。 我在我的模式中有这个: UserSchema.pre('save', function(next) { // declare my variables let user = this, buf = Buffer.alloc(sodium.crypto_pwhash_STRBYTES, 'ascii'), passwordBuf = Buffer.from(user.password, 'ascii'), saltedPassBuf, hash; // only hash the password if it has been modified (or is new) if (!user.isModified('password')) return next(); // generate a salt sodium.randombytes_buf(buf, sodium.crypto_pwhash_STRBYTES, 'ascii'); // add salt to the password saltedPassBuf […]

AWS lambda NodeJS PGP从文件解密到文件

我必须在NodeJS中实现的AWS lambda函数中解密和处理PGPencryption文件。 由于lambda函数的内存限制,解密的输出必须stream式传输到临时文件,而不是保存在内存中。 我查看了几个NodeJS模块,但是我找不到任何提供将input文件直接解密到输出文件的机制,同时最小化存储在内存中的数据。 任何build议如何做到这一点将不胜感激。

添加letsencrypt证书到nodejs http服务器?

比方说,我有一个简单的nodejs http服务器,如下所述,还letsencrypt证书准备在/etc/letsencrypt 。 我如何去改变到https和添加证书? var http = require('http'); var app = require('express')(); app.get('/', function (req, res) { res.send('Hello World!'); }); http.createServer(app).listen(3000, function () { console.log('Started!'); });