현재 위치: > 최신 기사 목록> node.js crypto 모듈을 사용하여 md5_file () 함수 php와 유사한 방법은 무엇입니까?

node.js crypto 모듈을 사용하여 md5_file () 함수 php와 유사한 방법은 무엇입니까?

M66 2025-06-28

PHP에서 MD5_FILE ()은 파일의 MD5 해시 값을 계산하는 매우 편리한 기능입니다. 사용하는 것은 매우 간단합니다.

<code> $ hash = md5_file ( '경로/to/file.txt'); </코드>

이는 파일 무결성 검증, 캐시 아이덴티티 생성 등과 같은 시나리오에서 매우 실용적입니다. 그러나 node.js에서 md5_file () 과 완전히 동등한 내장 기능이 없습니다. 그러나 Node.js의 Core 모듈 암호화FS 모듈을 사용하여 유사한 기능을 수동으로 구현할 수 있습니다.

node.js 구현 아이디어

Node.js의 Crypto 모듈은 강력한 암호화 기능을 제공하는 반면 FS 모듈을 사용하면 스트림에서 파일 내용을 읽을 수 있습니다. 이 두 가지를 결합하여 파일 내용을 읽고 MD5 값을 실시간으로 계산할 수 있습니다.

다음은 구현 코드입니다.

<code> const fs = require ( 'fs'); const crypto = 요구 ( 'crypto');

함수 md5file (filepath) {
새로운 약속을 반환합니다 ((결의, 거부) => {
const hash = crypto.createhash ( 'md5');
const stream = fs.createreadstream (Filepath);

 stream.on('data', chunk => hash.update(chunk));
stream.on('end', () => resolve(hash.digest('hex')));
stream.on('error', reject);

});
}

// 예제를 사용합니다
md5file ( 'example.txt')
.
console.log ( 'md5 :', hash);
})
.catch (err => {
console.error ( '오류 읽기 파일 :', err);
});
</코드>

이 함수는 약속을 반환하여 파일을 성공적으로 읽고 해시 할 때 해당 MD5 ​​값을 반환합니다.

고급 사용 : 업로드 확인과 결합

업로드 서비스를 구축했으며 업로드 전후에 업로드 한 파일이 일관성이 있는지 확인해야한다고 가정합니다. 업로드하기 전에 MD5 값을 서버에서 생성 된 값과 비교할 수 있습니다.

<code> app.post ( '/upload', (req, res) => {const uploadedfilepath = '/tmp/uploaded.file';

// uploadedFilePath에 파일을 저장했다고 가정합니다
md5file (uploadedfilepath). (serverhash => {
const clientHash = req.body.md5;

 if (serverHash === clientHash) {
  res.send('일관된 파일');
} else {
  res.status(400).send('파일 확인이 실패했습니다');
}

}). catch (() => {
res.status (500) .send ( '내부 오류');
});
});
</코드>

브라우저 측에서 MD5 값을 생성합니다

전체 기능을 달성하려면 클라이언트 업로드 전에 파일의 MD5 값을 만들어야 할 수도 있습니다. 브라우저 측면에서 SparkMD5 및 FilereAder API와 같은 라이브러리를 사용하여 파일 해시 값을 계산할 수 있습니다.

요약

Node.js는 PHP에서 md5_file () 의 바로 가기 기능이 없지만 암호화FS 모듈을 통해 유사한 기능을 쉽게 구현할 수 있습니다. 스트리밍 처리를 사용하면 큰 파일을 처리 할 때 메모리 효율성을 보장 할 수 있으며, 이는 고성능 파일 검증 및 처리 서비스를 구축하는 데 적합합니다.