【发布时间】:2017-06-11 09:08:41
【问题描述】:
我正在使用以下命令在 openssl 中加密视频文件
openssl aes-256-cbc -nosalt -a -in movie.mp4 -out movie.enc -k skdjfsldkfjsldkjfsldkf
并使用以下代码解密文件,但我一直收到错误的解密错误我做错了什么?
var crypto = require('crypto');
var fs = require('fs');
cipher_name = 'aes-256-cbc';
password = 'skdjfsldkfjsldkjfsldkf';
decoder = crypto.createDecipher( cipher_name, password );
text_crypt = fs.readFileSync( 'movie.enc' );
chunks = [];
chunks.push(decoder.update( text_crypt, 'binary' ));
chunks.push(decoder.final( 'binary' ));
fs.writeFileSync( 'nodemovie.mp4',chunks.join('','binary') );
这是我遇到的错误
Error: error:0606506D:digital envelope routines:EVP_DecryptFinal_ex:wrong final block length
at Decipher.final (crypto.js:160:26)
at Object.<anonymous> (F:\java\index.js:12:21)
at Module._compile (module.js:571:32)
at Object.Module._extensions..js (module.js:580:10)
at Module.load (module.js:488:32)
at tryModuleLoad (module.js:447:12)
at Function.Module._load (module.js:439:3)
at Module.runMain (module.js:605:10)
at run (bootstrap_node.js:427:7)
at startup (bootstrap_node.js:151:9)
我应该能够在openssl中加密视频并同时在node和java中解密
【问题讨论】:
-
你为什么标记为java?
-
因为我想在 java 中解密同一个文件......我在我的 qn 中也提到过同样的内容
-
@SushilSudhakaran - 选择你的毒药 - 在 Node.js 中解密,或在 Java 中解密。既然标题表示 Node.js,那么如果答案集中在 Node.js 上呢?准备好后,再问一个特定于 Java 的问题。
-
-k skdjfsldkfjsldkjfsldkf与-K skdjfsldkfjsldkjfsldkf不同。另请参阅 EVP_BytesToKey 手册页和 EVP_DecryptFinal_ex:bad decrypt when using Node.js。 -
这里有一些类似的问题和答案:Decrypting AES256 with node.js returns wrong final block length、Nodejs decrypt using crypto error wrong final block length、Getting error wrong final block length while decrypting AES256、How to decipher string in node js which is encrypted in crypto.js、What's wrong with nodejs crypto decipher?
标签: node.js encryption openssl aes