支付宝 PEM routines:PEM_read_bio:no start line

今天在做支付宝开发,将密钥赋给变量,然在在签名的时候就直接报错,PEM routines:PEM_read_bio:no start line

Error: error:0906D06C:PEM routines:PEM_read_bio:no start line
    at Sign.sign (internal/crypto/sig.js:85:26)
    at signWithPrivateKey (/Users/caowei/workspace/remote/hehe-api/handlers/pay.js:19:19)
    at aliOrderCreate (/Users/caowei/workspace/remote/hehe-api/handlers/pay.js:57:18)

报错的私钥我是这样写的:

module.exports = {
  // 商户应用私钥
  ali_pay_private_key: 'MIIEowIBAAKCAQEA11ybEJhndRefODF/buaW/VFs5jnX/XOsUm/Wee6jwrZCKGE1Towsu/ERLbOrZyAo4FKXIRV5TWnBPHuN7pjwEP2R3O+Hw5n+lT7oV1N55fk1+wZ/4MAM1nrPDhZ5dEFuViG5XfgFEbcdK5tUkmvL/S7RRnEA0hcijkyc9RvIrzc8KVvm1mqS8w0uY7ef6oMWGkLjpTRtenB92T1wyw/ohNx+4LtulGzczxTeNNcjqZtKYKXtqdnssfE+TxuVUM+VL5g6dFWzxieuqvO8aIoLrT9PEnKpfBANUt8nZucSVlfvKc0Dft9BrvIafDFCNHS206MDfZxw5ha4l8nmiFARIwIDAQABAoIBAH3GnN1lVM7C2/9SkS0wyK/rVSFkWOuyGcsPfAA8SjHWhe7VTu+v2BRvZuv9Cbaxxo20ToVI6E443F05f5wAf/w8S2rwDadEEbYSRllx7DhOgqM3mYmmQBknIjQFFiu6ZvkwuvTRfAxrmEK2df8Jq9oS9LAiISuRzWG0BtrzvhHtqxQzv9R+PnWtY4LMmO5Nab7iWu9MQsm+zcTnItNlZcx58FKweW6Y3I6+SAjqrZgfIxVuXwbF6obyJ+0IJgjt/U897GO0zzL0G4UuHf9je6cTpOXRrAWo61L1qttwHO/IXeykaqSGJVrLn77gTBFMCuxPj9gLPLPMCA/E+d+xOuECgYEA7LTUp1ESf0OJAN7W9NCp832Vyob00WPAzhRtXl3N1DEupmbXxcXUG12PUa+4efLPH68zhptg2INiZP/U9mZgk95QVazfv+Yh3ec+hc/pMr+dq4n7pvShwjauJFTo6Hyi98qENTEuutObjEOyDNgJ65KQZg1h/c50PxYZ3/ZjclfCgYEA6OpkpFWHJM1GMd2DF5ux+xMdRx+htV7xt9ZG5NdtzOiXnVUvOzP90SFm5bPLKvFWJ5KR7A/WeWRqWdVdfPOLCOhHCIgFAyV5jc/Ss49C404R7KsFLi6n09RN3f0m3526yYXcbKw3+1s9w7tGkjS4dWmTHLxDDy4hMdrMI7ol2zMCgYBUQYnwhMswwblite+N9TiJk4peLOu4HOnkcSD9FibOATO5x6HGpER7+TGqwgHIZsWTYanVoDk42IuNqAMGMirud5Pg60g55pDGzKlUuE0p40vcZGFPbISnvQ7/n7nIB5V63ntw87DOj8QuiWo3aC8fy2va56iZz4NRcWyEbA+6AQKBgQDLi7OCvcBZ+A6FG3kp04W5zl2Cv3D5aMzDBL6V1HJ/ZTDCbSRGj8wbzB35VaOSlq/dC2j8rGaZVZjfgugdf1Sc5yjUmtIOitxsgxc2llc1ABAIDPkM//bo1xtpiYdEbrpWzOXyDpspzfXvLKWitfIRob7PmPLdvEmEIRrPiij1IwKBgEw5gqmBn1pz7zpzuFgZtjFPyAFhijZT9iUfOhbWShVMjB68YqxrDgNDMf5Q7a6z+EqN8wjjEkCSa3CtkfoQ9gp51btyhboUxYp3LUUFmslLsHE7C9uDXN+Jz+SbKDEHsEJs1oxs/TA0xWtsbpP1kahSgo2E38T2m/j0yWZV3r3a'
}

直接复制的支付宝RSA验签工具里面的私钥。
其实正确的写法,尤其是在字符串变量中,我们需要加上前缀和后缀就可以解决问题。

-----BEGIN RSA PRIVATE KEY-----\r\n
复制过来的私钥
\r\n-----END RSA PRIVATE KEY-----

所以正确的格式如下

module.exports = {
  // 商户应用私钥
  ali_pay_private_key: '-----BEGIN RSA PRIVATE KEY-----\r\nMIIEowIBAAKCAQEA11ybEJhndRefODF/buaW/VFs5jnX/XOsUm/Wee6jwrZCKGE1Towsu/ERLbOrZyAo4FKXIRV5TWnBPHuN7pjwEP2R3O+Hw5n+lT7oV1N55fk1+wZ/4MAM1nrPDhZ5dEFuViG5XfgFEbcdK5tUkmvL/S7RRnEA0hcijkyc9RvIrzc8KVvm1mqS8w0uY7ef6oMWGkLjpTRtenB92T1wyw/ohNx+4LtulGzczxTeNNcjqZtKYKXtqdnssfE+TxuVUM+VL5g6dFWzxieuqvO8aIoLrT9PEnKpfBANUt8nZucSVlfvKc0Dft9BrvIafDFCNHS206MDfZxw5ha4l8nmiFARIwIDAQABAoIBAH3GnN1lVM7C2/9SkS0wyK/rVSFkWOuyGcsPfAA8SjHWhe7VTu+v2BRvZuv9Cbaxxo20ToVI6E443F05f5wAf/w8S2rwDadEEbYSRllx7DhOgqM3mYmmQBknIjQFFiu6ZvkwuvTRfAxrmEK2df8Jq9oS9LAiISuRzWG0BtrzvhHtqxQzv9R+PnWtY4LMmO5Nab7iWu9MQsm+zcTnItNlZcx58FKweW6Y3I6+SAjqrZgfIxVuXwbF6obyJ+0IJgjt/U897GO0zzL0G4UuHf9je6cTpOXRrAWo61L1qttwHO/IXeykaqSGJVrLn77gTBFMCuxPj9gLPLPMCA/E+d+xOuECgYEA7LTUp1ESf0OJAN7W9NCp832Vyob00WPAzhRtXl3N1DEupmbXxcXUG12PUa+4efLPH68zhptg2INiZP/U9mZgk95QVazfv+Yh3ec+hc/pMr+dq4n7pvShwjauJFTo6Hyi98qENTEuutObjEOyDNgJ65KQZg1h/c50PxYZ3/ZjclfCgYEA6OpkpFWHJM1GMd2DF5ux+xMdRx+htV7xt9ZG5NdtzOiXnVUvOzP90SFm5bPLKvFWJ5KR7A/WeWRqWdVdfPOLCOhHCIgFAyV5jc/Ss49C404R7KsFLi6n09RN3f0m3526yYXcbKw3+1s9w7tGkjS4dWmTHLxDDy4hMdrMI7ol2zMCgYBUQYnwhMswwblite+N9TiJk4peLOu4HOnkcSD9FibOATO5x6HGpER7+TGqwgHIZsWTYanVoDk42IuNqAMGMirud5Pg60g55pDGzKlUuE0p40vcZGFPbISnvQ7/n7nIB5V63ntw87DOj8QuiWo3aC8fy2va56iZz4NRcWyEbA+6AQKBgQDLi7OCvcBZ+A6FG3kp04W5zl2Cv3D5aMzDBL6V1HJ/ZTDCbSRGj8wbzB35VaOSlq/dC2j8rGaZVZjfgugdf1Sc5yjUmtIOitxsgxc2llc1ABAIDPkM//bo1xtpiYdEbrpWzOXyDpspzfXvLKWitfIRob7PmPLdvEmEIRrPiij1IwKBgEw5gqmBn1pz7zpzuFgZtjFPyAFhijZT9iUfOhbWShVMjB68YqxrDgNDMf5Q7a6z+EqN8wjjEkCSa3CtkfoQ9gp51btyhboUxYp3LUUFmslLsHE7C9uDXN+Jz+SbKDEHsEJs1oxs/TA0xWtsbpP1kahSgo2E38T2m/j0yWZV3r3a\r\n-----END RSA PRIVATE KEY-----'
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值