在尝试将十六进制值传递给节点js中的加密密码时,我在ciphertext上获得空白返回,同时在ciphertext2上正确返回。无法解释这两种情况有什么区别。
var secret = 'YmcNFa37DrT+0p10pnSpQSytWxlqNCyU';
var cipher = crypto.createCipher('des3', secret);
var plaintext = '3b9ac9ff';
var ciphertext = cipher.update(plaintext, 'hex', 'hex');
var ciphertext2 = cipher.update('3b9ac9ff', 'hex', 'hex');
console.log(plaintext + ' , ' +ciphertext + ' , '+ ciphertext2);
给我一个输出
3b9ac9ff , , 0472620ba5ddf690
答案 0 :(得分:1)
发现问题。 @Andreas指出。
$where = $destination.long." between "
. $minLng . " and " . $maxLng . " and ".$destination.lat." between " . $minLat . " and "
. $maxLat . " having distance < " . $prefered_distance
应该是
var ciphertext = cipher.update(plaintext, 'hex', 'hex');
导致混淆的两个原因(虽然没有理由愚蠢) 1.节点js不会给你一个运行时异常。相反,只是表现得很糟糕,如上所述。 2.允许输出作为十六进制使我相信即使输入也是允许的。