javascript'hex'未知行为

时间:2015-07-21 07:04:41

标签: javascript node.js

在尝试将十六进制值传递给节点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

1 个答案:

答案 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.允许输出作为十六进制使我相信即使输入也是允许的。