-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathvalidation.js
More file actions
34 lines (27 loc) · 1.02 KB
/
Copy pathvalidation.js
File metadata and controls
34 lines (27 loc) · 1.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// 非对称加密 https://nodejs.org/api/crypto.html#crypto_verify_verify_object_signature_signatureformat
/*
* 私钥加密,公钥验签
* 参数 message: data(前64位) + sign(除去data的剩余数据)
*/
const fs = require('fs');
const crypto = require('crypto');
module.exports = {
validate: (message, signature) => {
// 获取公钥字符串
console.log(__dirname + '/key/mgrkey-cert.pem');
let publicPem = fs.readFileSync(__dirname + '/key/mgrkey-cert.pem');
let publickey = publicPem.toString();
// ---------------公钥验签开始---------------
let verify = crypto.createVerify('RSA-SHA256');
// 取得原文
let inputData = message;
console.log(inputData);
// 签名之后的数据
let inputSig = signature;
console.log(signature);
verify.update(inputData);
let result = verify.verify(publickey, inputSig, 'base64');
console.log('公钥验签结果', result);
return result;
}
};