Tag: aes

解密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 […]

2路encryptionalgorithm,对Ruby和Node.JS只encryption到字母和数字

我有一个node.js服务器,将encryption一个string,并将其存储到数据库中。 我还有一个RoR(Ruby on Rails)服务器,它将从数据库中检索encryption的string并对其进行解密。 我唯一的标准是encryption只能将stringencryption成一串字母和数字(没有特殊字符) 有什么build议么

在java中encryption,在node.js中解密

我需要在Java中进行encryption,并使用node.js进行解密。 解密结果已损坏。 这里是java代码: public String encrypt(SecretKey key, String message){ Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); cipher.init(Cipher.ENCRYPT_MODE, key); byte[] stringBytes = message.getBytes("UTF8"); byte[] raw = cipher.doFinal(stringBytes); // converts to base64 for easier display. BASE64Encoder encoder = new BASE64Encoder(); String base64 = encoder.encode(raw); return base64; } 这里是node.js代码: AEse3SCrypt.decrypt = function(cryptkey, encryptdata) { encryptdata = new Buffer(encryptdata, 'base64').toString('binary'); var decipher […]

当PassPhrase相同时,需要SJCL做相同的encryption的AES 256输出

我正在使用Node.js上传在客户端encryption的文件,并使用SJCL(Stanford Javascript Crypto Library)来使用Javascriptencryption文件。 但是我注意到,即使使用相同的PassPhrase,输出或encryption的结果也是不同的。 经过几次研究之后,我发现这是因为盐每次都是随机的,我需要做一个“nosalt”(对不起,我对这里的所有东西都是新的,cryptographie,Node.js) 每次密码相同时,如何更改我的代码(或SJCL代码)以生成确切的encryption输出。 我的应用程序基于“Cryptloader”项目,你可以在这里find它: https : //github.com/Kryil/Cryptloader encryption: var part = file_queue[data["id"]].slice(start, end) var reader = new FileReader() reader.onload = function(e) { var passwd = document.getElementById("password").value console.log("Uploading arraybuffer of size " + e.target.result.byteLength) var i32a = new Int32Array(e.target.result) var out = i32a.toJSONArray() console.log("crypting: " + out) var crypted = sjcl.encrypt(passwd, out) […]

节点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') […]

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实现?

解密来自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, […]

使用Node.js AES点击encryption并使用PyCrypto进行解密

好吧,所以基本上我有问题与Python解密。 我设法使用Node.jsencryption/解密数据 – 使用“aes-128-ctr”,PyCrypto也是如此,但是当我尝试使用Node.js进行encryption并使用Python进行解密时,我得到的解密文本无效。 Node.js代码: var key = "1234567890123456"; var cipher = crypto.createCipher("aes-128-ctr",key) var ctext = cipher.update('asasasa','utf8','hex') + cipher.final('hex') console.log(ctext) // outputs: "f2cf6ecd8f" Python代码: counter = Counter.new(128) cipher = AES.new("1234567890123456", AES.MODE_CTR, counter=counter) cipher.decrypt("f2cf6ecd8f") // outputs: weird encoding characters 顺便说一下,我并不在乎这种encryption的安全级别,我更关心性能。

python(pycrypto)和nodejs(crypto)之间不匹配的encryption(aes-128-cbc)

我有这个python代码,我需要翻译成nodejs。 python代码使用来自encryption的pycrypto。 在nodejs方面,我正在使用本地encryption模块。 encryption的string似乎不匹配。 from Crypto.Cipher import AES from binascii import b2a_hex, a2b_hex import json raw_key = [0x58, 0x86, 0x17, 0x6d, 0x88, 0x7c, 0x9a, 0xa0, 0x61, 0x1b, 0xbb, 0x3e, 0x20, 0x28, 0xa4, 0x5a] key = str(bytearray(raw_key)) raw_iv = [0x34, 0x2e, 0x17, 0x99, 0x6d, 0x19, 0x3d, 0x28, 0xdd, 0xb3, 0xa2, 0x69, 0x5a, 0x2e, 0x6f, 0x1b] iv […]

AES CryptoJSencryption和phpseclib解密

我有下一个问题 在Node.js上我有一个下一个代码 var iv = CryptoJS.enc.Hex.parse('00000000000000000000000000000000'); //it's for tests, later it will be dynamically generated var key256Bits = 'A5178B6A965AACF3CD60B07A15061719'; var cipher = CryptoJS.AES.encrypt( 'Some text', key256Bits, { iv: iv, padding:CryptoJS.pad.ZeroPadding } ).toString(); 然后当我尝试用phpseclib解码它 $key = 'A5178B6A965AACF3CD60B07A15061719'; $data = /*text encrypted by JS*/; $cipher = new AES(); $cipher->setKeyLength(256); $cipher->setKey($key); $res = $cipher->decrypt($data); 然后$ res变成一个空string 我做错了什么?