Javascript Browserify`crypto.createDecipher`“;未捕获范围错误:数组长度无效;
我有一个在Node中工作的加密代码示例,但当我在browserify中尝试它时,我得到一个“UncaughtRangeError:无效数组长度” 来自节点的输出:Javascript Browserify`crypto.createDecipher`“;未捕获范围错误:数组长度无效;,javascript,cryptography,browserify,Javascript,Cryptography,Browserify,我有一个在Node中工作的加密代码示例,但当我在browserify中尝试它时,我得到一个“UncaughtRangeError:无效数组长度” 来自节点的输出: $ node crypto.js Encrypted: ClvTr5IWbgLHmgGQi81T6xtCR1RX4j5prSvFmtFr9+EXr5qKePKWcnu4tdFckh50 Decrypted: The quick brown fox jumps over the lazy dog. It worked! Brows
$ node crypto.js
Encrypted: ClvTr5IWbgLHmgGQi81T6xtCR1RX4j5prSvFmtFr9+EXr5qKePKWcnu4tdFckh50
Decrypted: The quick brown fox jumps over the lazy dog.
It worked!
Browserify的输出:
Encrypted: ClvTr5IWbgLHmgGQi81T6xtCR1RX4j5prSvFmtFr9+E=F6+ainjylnJ7uLXRXJIedA==
Oops! RangeError: Invalid array length
一些有趣的观察结果:
Fr9+E
(大约43个字符)之后,加密输出就不同了,这让我认为问题在于加密而不是解密数据
选择一个较小的字符串,例如“testing”,它就会起作用decrypt
(即,解密节点的加密数据)之前添加以下代码行,它会工作。证明我的观点,错误在于加密机
encryptedData=“clvtr5iwbglhlhmggqi81t6xtcr1rx4j5prsvfmtfr9+EXr5qKePKWcnu4tdFckh50”;
更新2
将算法设置为aes-256-ctr将使我在Browserify中通过测试,但我仍然担心Browserify crypto的aes256产生的结果与节点的不同。修复强>
原来这是Browserify的base64数据编码的问题。它被Browserify的优秀员工合并为master(请参阅)。修复强> 原来这是Browserify的base64数据编码的问题。它被Browserify的优秀人士合并为master(见)
Encrypted: ClvTr5IWbgLHmgGQi81T6xtCR1RX4j5prSvFmtFr9+E=F6+ainjylnJ7uLXRXJIedA==
Oops! RangeError: Invalid array length