小码哥的IT人生

首页 > JS > nodejs

node.js实例:使用 crypto 模块获取apk文件 md5 值

nodejs 2023-08-29 16:34:31小码哥的IT人生shichen

一、功能需求

node.js获取apk文件md5值

二、解决方案

获取apk文件的md5值【基于 crypto 模块】

1. 安装 crypto 模块

npm install crypto --save

2. 引入 crypto 模块

(commonjs模式:)

const crypto = require('crypto');

(module 模式:)

import crypto from 'crypto';

3. 获取apk文件md5值函数

async function calculateMD5(filePath) {
    return new Promise((resolve, reject) => {
      const hash = crypto.createHash('md5');
      const stream = fs.createReadStream(filePath);
      stream.on('data', (data) => {
        hash.update(data, 'utf8');
      });
      stream.on('error', (error) => {
        reject(error);
      });
      stream.on('end', () => {
        const md5Hash = hash.digest('hex');
        resolve(md5Hash);
      });
    });
}

4. 用法示例:

(async ()=>{
    let md5val = await calculateMD5(filePath);
    console.log(md5val);
})();

5. 完整实例:

const crypto = require('crypto');
const fs = require('fs');
const path = require('path');
// apk 文件路径
let filePath = path.join(__dirname,'sqgjyy_896720.apk');
// 获取apk文件md5值函数
async function calculateMD5(filePath) {
    // console.log('【进入获取md5值函数')
    return new Promise((resolve, reject) => {
      const hash = crypto.createHash('md5');
      const stream = fs.createReadStream(filePath);
      stream.on('data', (data) => {
        hash.update(data, 'utf8');
      });
      stream.on('error', (error) => {
        reject(error);
      });
      stream.on('end', () => {
        const md5Hash = hash.digest('hex');
        resolve(md5Hash);
      });
    });
}
// 用法示例:
(async ()=>{
    let md5val = await calculateMD5(filePath);
    console.log(md5val);
})();

运行结果:

ad02a951bde00fbf0e035af503daee97

 

版权所有 © 小码哥的IT人生
Copyright © phpcodeweb All Rights Reserved
ICP备案号:苏ICP备17019232号-2  

苏公网安备 32030202000762号

© 2021-2024