Articles of encryption

检查zip或gzip是否是密码encryption的(Node.JS)

我有一个糟糕的时间,试图查看一个zip或gzip有密码保护的文件。 我习惯了DotNetZip在.net中看到,但在Node.js中,我似乎无法find一个等效。 通过检查引导字节,我可以看到文件是gzip还是zip,但是如果它们包含encryption的文件则不能,这可能是gpg,传统的,甚至是aes。 我试过使用unzip , unzip2和adm-unzip包,但他们只是没有解决我的问题。 我正在寻找一个纯粹的node.js实现。 在这一点上,我只是考虑写我自己的模块来解决我的问题。

独特的短安全哈希,可以解码

我有一个客户端产品的基本下载系统。 用户可以打印出他们可以在线下载文件的可读代码(15位或更低)。 现在所有唯一代码都存储在数据库中,但是由于代码量越来越高,我想更改系统。 我想采取一些秘密的盐,并生成独特的哈希,我们的下载系统可以解码和比较,如果散列是有效的(并从盐创build)。 我发现了两个节点包: https : //github.com/sehrope/node-simple-encryptor和http://hashids.org/ 使用简单的encryption器,我可以为“mysecretpassphrase”生成唯一的哈希值。 当用户input这个代码时,我可以对散列进行解码,并检查它是否是“mysecretpassphrase”,如果允许,则允许下载。 然而,哈希值是很长的(120个字母数字符号)。 与其他包(哈希)我得到url友好的人类可读代码,但我只能散列整数。 任何想法如何创build高达一百万哈希(人类可读)低于15个字母数字字母,可以再次解码? 它不需要encryption防弹。

从Nodejs应用程序接收到encryption密钥时长度错误不正确的密文

python中的PyCrypto需要帮助。 我试图解密从node.js应用程序获得的文本。 这就是我可以如何解密nodejs中的密钥 key.decrypt(<encrypted_text`, 'base64', 'utf8', ursa.RSA_PKCS1_PADDING) 但是,当我尝试使用python PyCrypto模块解密相同的文本时,我得到错误。 这里是更多的细节:我想解密在Python中使用此代码: from Crypto.Cipher import PKCS1_v1_5 from Crypto.PublicKey import RSA from Crypto.Hash import SHA from Crypto.Hash import SHA from Crypto import Random from base64 import b64decode key = RSA.importKey(open('cert.key').read()) sentinel = Random.new().read(15+dsize) # Let's assume that average data length is 15 text = b64decode(<encrypted_text>) cipher = PKCS1_v1_5.new(key) […]

Nodejsencryption的string不符合java:AES-256-CBC

嗨,我写了nodejsencryption和javaencryption通过使用相同的algorithm在一边。 但Java和NodeJS正在返回不同的encryptionstring。 请帮我这里。 //这是我的Java代码 import java.io.UnsupportedEncodingException; import java.security.Key; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.security.spec.AlgorithmParameterSpec; import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; import java.util.Base64; public enum AESUtil { ; private static final String ENCRYPTION_KEY = "RwcmlVpg"; private static final String ENCRYPTION_IV = "4e5Wa71fYoT7MFEX"; public static String encrypt(String src) { try { Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); cipher.init(Cipher.ENCRYPT_MODE, makeKey(), […]

如何从nodejs中的jks密钥库中提取密钥

节点应用程序需要能够从.jks密钥库中获取不同的密钥,并使用它们对JWE令牌进行签名,validation,encryption和解密。 node-keytool库允许我加载密钥库,但是我不能在node-jose库中使用它来执行操作,这需要一个JWK集合。 有没有办法将.jks转换为JWK集? 如果没有,我怎样才能访问密钥库,以便在node-jose中可用?

解密s3文件卸载使用unload命令与对称密钥encryption

我尝试使用AES对称密钥encryption解密由s3上传的文件,通过从redshift卸载命令上传。 如果我们使用AWS Java sdk下载aes key给s3客户端,那么它就可以正常工作。但是如果我们在下载文件后尝试手动解密它,它会给出javax.crypto.BadPaddingException: Given final block not properly padded错误。 手动解密文件的原因是我想解密使用node.js文件,据我所知,没有节点中的sdk,可以直接做到这一点。 我试过的Node.js代码: var AWS = require('aws-sdk'); var fs = require('fs'); var crypto = require('crypto'); var CryptoJS = require("crypto-js"); var algorithm = 'aes256'; var inputEncoding = 'hex'; var outputEncoding = 'utf-8'; var key = "symmetric key base 64"; //prod var data = fs.readFileSync('/tmp/files/myfile'); console.log(data); var […]

Node.js – 用CSPRNGencryption硬编码的密码

我正在使用Node.js和Express.js公开一些API。 有些密码需要存储在一个configuration文件(json)中,然后用来连接其他服务器。 例子, module.exports = { connection: { server: "abc" user: "user1", password: "p123" } }; 出于安全原因,这些密码需要进行encryption(并且随后通过部署在Express.js中的服务进行解密以连接到另一台服务器)。 我查看了一些Node.jsencryption包,发现了几个npm包,如crypto-js,cryptr,simple-encryptor等 现在,IT团队已经分享了一些安全要求, '确保CSPRNG而不是PRNG用于JavaScriptencryption' 当我查看这些软件包时,我找不到它们是使用CSPRNG还是PRNG。 有人可以帮我理解究竟是什么区别,哪个encryption/解密包使用CSPRNG而不是PRNG?

Angular CryptoJs Encryption在Node JS CryptoJS中没有解密

这是我的Anguarjs守则 $httpProvider.defaults.headers.common['key'] = CryptoJS.AES.encrypt('<datatoencrypt>', '<key let says xyx>=', { mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7, keySize: '256 / 32' }); 节点JS代码解密使用,algorithm如aes-256-cbc和key一样angular。 app.all('*', function (req, res, next) { var headers = JSON.parse(JSON.stringify(req.headers)); var decipher = crypto.createDecipher(algorithm, key); decipher.setAutoPadding(true); var dec = decipher.update(headers.key, 'hex', 'utf8'); dec += decipher.final('utf8'); if (dec != "<datatoencrypt>") { //do something next(); } else { […]

如何在节点js中生成和validationJWE?

我尝试了下面的代码来创buildRSA-OAEP和A128GCM JWE生成器和validation器。 它适用于节点js,即encryption声明和生成jwe和解密给我的要求。 但它不是与其他客户,如nimbusds jose,jose4j。 所以肯定我错过了一些东西。 我正在阅读https://tools.ietf.org/html/rfc7516 index.js var crypto = require('crypto'); var randomstring = require("randomstring"); var ursa = require("ursa"); var fs = require("fs"); var base64url = require('base64url'); var ascii = require("./ASCII"); var claims = { firstName: "vimal" }; var header = { "enc": "A128GCM", "alg": "RSA-OAEP" }; var headerBase64Url = base64url.encode(JSON.stringify(header)); console.log("headerBase64Url : " […]

这个C#encryption代码在NodeJS中看起来像什么?

三重数据encryption不会在PHP和C#中产生相同的结果 public static string Encrypt(string toEncrypt, string key, bool useHashing) { byte[] keyArray; byte[] toEncryptArray = UTF8Encoding.UTF8.GetBytes(toEncrypt); if (useHashing) { MD5CryptoServiceProvider hashmd5 = new MD5CryptoServiceProvider(); keyArray = hashmd5.ComputeHash(UTF8Encoding.UTF8.GetBytes(key)); } else keyArray = UTF8Encoding.UTF8.GetBytes(key); TripleDESCryptoServiceProvider tdes = new TripleDESCryptoServiceProvider(); tdes.Key = keyArray; tdes.Mode = CipherMode.ECB; tdes.Padding = PaddingMode.PKCS7; ICryptoTransform cTransform = tdes.CreateEncryptor(); byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, […]