使用javascript从p12文件获取私钥

使用javascript从p12文件获取私钥,javascript,node.js,decode,private-key,pem,Javascript,Node.js,Decode,Private Key,Pem,我需要从给我的p12文件中获取私钥。我尝试使用forge库并编写了以下代码 var forge = require('node-forge'); var fs = require('fs'); var p12File = fs.readFileSync("C:/Users/macilamanym/Desktop/certs/mayoorancert.p12"); //var privateKey = p12ToPem(p12File, "qwerty"); var p12Der = forg

我需要从给我的p12文件中获取私钥。我尝试使用forge库并编写了以下代码

var forge = require('node-forge');
var fs = require('fs');

var p12File = fs.readFileSync("C:/Users/macilamanym/Desktop/certs/mayoorancert.p12");
//var privateKey = p12ToPem(p12File, "qwerty");

var p12Der = forge.util.decode64(p12File);
// get p12 as ASN.1 object
var p12Asn1 = forge.asn1.fromDer(p12Der);
// decrypt p12 using the password 'password'
var p12 = forge.pkcs12.pkcs12FromAsn1(p12Asn1, 'qwerty');

console.log(p12);
但它抛出了以下错误

G:\Projects\Tests\NodeJSTest\node_modules\node-forge\js\util.js:1569
  input = input.replace(/[^A-Za-z0-9\+\/\=]/g, '');
                ^

TypeError: input.replace is not a function
    at Object.util.decode64 (G:\Projects\Tests\NodeJSTest\node_modules\node-forge\js\util.js:1569:17)
    at Object.<anonymous> (G:\Projects\Tests\NodeJSTest\index.js:9:25)
    at Module._compile (module.js:409:26)
    at Object.Module._extensions..js (module.js:416:10)
    at Module.load (module.js:343:32)
    at Function.Module._load (module.js:300:12)
    at Function.Module.runMain (module.js:441:10)
    at startup (node.js:139:18)
    at node.js:968:3
G:\Projects\Tests\NodeJSTest\node\u modules\node forge\js\util.js:1569
输入=输入。替换(/[^A-Za-z0-9\+\/\=]/g');
^
TypeError:input.replace不是函数
在Object.util.decode64(G:\Projects\Tests\NodeJSTest\node\u modules\node forge\js\util.js:1569:17)
反对。(G:\Projects\Tests\NodeJSTest\index.js:9:25)
在模块处编译(Module.js:409:26)
在Object.Module.\u extensions..js(Module.js:416:10)
在Module.load(Module.js:343:32)
在Function.Module.\u加载(Module.js:300:12)
位于Function.Module.runMain(Module.js:441:10)
启动时(node.js:139:18)
在node.js:968:3
我做错了什么?有没有更好的方法从p12文件中获取私钥?请给我一些建议


另外请注意,我只获得了私钥的密码。私钥的名称未知。因此,这应该是一个解决方案,我不需要提供私钥名称就可以从p12中获取它。

我可以使用以下方法从文件中获取p12:

var forge = require('node-forge');
var fs = require('fs');

var keyFile = fs.readFileSync('path/to/your/p12/file.p12');
var keyBase64 = keyFile.toString('base64');


var p12Der = forge.util.decode64(keyBase64);

var p12Asn1 = forge.asn1.fromDer(p12Der);

var p12 = forge.pkcs12.pkcs12FromAsn1(p12Asn1, 'password');

console.log(p12);
我通过
fs
获取
p12
文件作为字符串,并将其编码到
base64

我希望这会有帮助