主要作用:验证文件的正确性
使用环境:我是在服务段给文件签名 客户下载我这个文件 此时可以通过验证签名来确定文件的正确性
const crypto = require("crypto");
const fs = require("fs");
console.log(fileIsLegitimate())
function fileIsLegitimate() {
//私钥与公钥不懂请自行百度(openssl)
// 读取私钥
const privateKey = fs.readFileSync('./my-prvkey.pem');
// 读取公钥
const publicKey = fs.readFileSync('./my-pubcert.pem');
// 验证的数据 //参数为文件地址
const data =fs.readFileSync('C:/Users/liujt/Documents/AppDesigner/working/ROOT.war');
// 签名算法
const Algorithm = 'sha256';
// 创建签名
const sign = crypto.createSign(Algorithm);
// 使用 update 方法更新数据
sign.update(data);
// 生成签名 以 hex 格式输入数据
const sig = sign.sign(privateKey, 'hex');
// 验证签名
const verify = crypto.createVerify(Algorithm);
// 使用 updata 方法更新数据
verify.update(data);
// 验证签名的数据是否正确
const result = verify.verify(publicKey, sig, 'hex');
// 打印签名验证结果
return result;
}