Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Nodejs加密签名/验证::错误:PEM例程:PEM\u读取\u bio:无起始行_Javascript_Node.js_Cryptojs - Fatal编程技术网

Javascript Nodejs加密签名/验证::错误:PEM例程:PEM\u读取\u bio:无起始行

Javascript Nodejs加密签名/验证::错误:PEM例程:PEM\u读取\u bio:无起始行,javascript,node.js,cryptojs,Javascript,Node.js,Cryptojs,我正在尝试使用nodejs加密库,使用以下代码对信息字符串进行签名/验证: // Generated by CoffeeScript 1.8.0 (function() { var crypto, tPriv, tPub1, tPub2, tSig, __Key, __Sign, __Verify; crypto = require('crypto'); __Sign = function(aObj, aPrivKey) { var tRet, tSign; tS

我正在尝试使用nodejs加密库,使用以下代码对信息字符串进行签名/验证:

// Generated by CoffeeScript 1.8.0
(function() {
  var crypto, tPriv, tPub1, tPub2, tSig, __Key, __Sign, __Verify;

  crypto = require('crypto');

  __Sign = function(aObj, aPrivKey) {
    var tRet, tSign;
    tSign = crypto.createSign('RSA-SHA256');
    tSign.update(aObj);
    tRet = tSign.sign(aPrivKey, 'base64');
    console.log(tRet);
    return tRet;
  };

  __Verify = function(aObj, aPubKey) {
    var tRet, tVerify;
    tVerify = crypto.createVerify('RSA-SHA256');
    tRet = tVerify.verify(aObj, aPubKey, 'base64');
    console.log(tRet);
    return tRet;
  };

  __Key = crypto.getDiffieHellman('modp5');
  __Key.generateKeys();
  tPub1 = __Key.getPublicKey('base64');
  tPub2 = __Key.getPublicKey('base64');
  tPriv = __Key.getPrivateKey('base64');
  tSig = __Sign(tPub1, tPriv);
  console.log(__Verify(tSig, tPub2));
}).call(this);
但是,运行时会出现以下错误:

# 140735266407184:error:0906D06C:PEM routines:PEM_read_bio:no start line:../deps/openssl/openssl/crypto/pem/pem_lib.c:703:Expecting: ANY PRIVATE KEY# 
# 
# crypto.js:398
#   var ret = this._binding.sign(toBuf(key));
#                           ^
# Error: SignFinal error
#     at Sign.sign (crypto.js:398:27)
#     at __Sign (~/testSig.js:11:18)
#     at Object.<anonymous> (~/testSig.js:34:10)
#     at Object.<anonymous> (~/testSig.js:38:4)
#     at Module._compile (module.js:456:26)
#     at Object.Module._extensions..js (module.js:474:10)
#     at Module.load (module.js:356:32)
#     at Function.Module._load (module.js:312:12)
#     at Function.Module.runMain (module.js:497:10)
#     at startup (node.js:119:16)
#140735266407184:错误:0906D06C:PEM例程:PEM_read_bio:无起始行:../deps/openssl/openssl/crypto/PEM/PEM_lib.c:703:应为:任何私钥#
# 
#crypto.js:398
#var ret=这个绑定符号(toBuf(key));
#                           ^
#错误:SignFinal错误
#在Sign.Sign(crypto.js:398:27)
#在符号处(~/testSig.js:11:18)
#反对。但老实说,我甚至不知道从哪里开始这个错误。我想它在抱怨私钥,但是我给它的私钥是来自它自己的库


如果有人能给我指出正确的方向,我将不胜感激。

你有没有找到这个错误的解决方案?没有,我最终让它使用缓冲区作为默认编码,问题神奇地消失了。