网站开发如何设置背景图片,网上建立网站赚钱,中国容桂营销网站建设,网站建设流程文字稿通常在DevOps CICD流水线部署前端项目时#xff0c;一般默认都要将dist资源打包为zip#xff0c;并且把zip名称改为md5sum哈希值(用于文件完整性验证)。
md5sum是什么#xff1f;
md5sum 是一个在 Unix 和类 Unix 系统#xff08;如 Linux#xff09;中广泛使用的命令行…通常在DevOps CICD流水线部署前端项目时一般默认都要将dist资源打包为zip并且把zip名称改为md5sum哈希值(用于文件完整性验证)。
md5sum是什么
md5sum 是一个在 Unix 和类 Unix 系统如 Linux中广泛使用的命令行工具它主要用于计算和验证文件的 MD5 哈希值。MD5Message-Digest Algorithm 5是一种广泛使用的加密哈希函数可以产生一个128位16字节的哈希值通常以一个32位的十六进制数表示。md5sum 工具的主要用途包括
文件完整性验证通过计算文件的 MD5 哈希值可以验证文件在传输或存储过程中是否被篡改。如果文件的 MD5 哈希值在传输前后一致那么可以认为文件在传输过程中未被更改。软件分发在软件分发过程中开发者会提供软件的 MD5 哈希值。用户下载软件后可以使用 md5sum 计算下载文件的 MD5 哈希值并与开发者提供的哈希值进行比较以确保下载的软件包完整且未被篡改。备份验证在备份文件或目录时使用 md5sum 可以为每个备份文件生成一个 MD5 哈希值并保存这些哈希值。之后可以通过重新计算备份文件的 MD5 哈希值来验证备份的完整性和一致性。数据去重虽然这不是 md5sum 的主要用途但由于 MD5 哈希值对于相同的输入总是产生相同的输出因此可以用于快速检测数据集中的重复项。然而由于 MD5 的安全性问题如存在碰撞攻击这种方法在需要高度安全性的场合并不适用。简单加密虽然 MD5 并不适合用于加密因为它是一个单向哈希函数无法从哈希值恢复原始数据但在某些简单场景下MD5 哈希值可以用于生成一种简单的“密码”或校验码尽管这种方式的安全性较低。
Vite对应代码简单案例
1,我们使用vite-plugin-zip-pack和crypto插件
npm i vite-plugin-zip-pack -Dnpm i crypto -D2,Vite配置代码
// vite.config.ts
import fs from fs;
import path from path;
import crypto from crypto;export default defineConfig({plugins: [//...zipPack({inDir: dist,outDir: zip/, // zip存放路径outFileName: dist.zip, // 默认名称为distdone: () {// zip路径const originPath zip/;const originFilePath ${originPath}dist.zip;// 读取zip内容const fileContents fs.readFileSync(originFilePath);// 创建哈希对象const hash crypto.createHash(md5);// 更新哈希值hash.update(fileContents);// 计算哈希值并以16进编码制输出md5sumconst md5sum hash.digest(hex);// 获取文件扩展名const fileExtension path.extname(originFilePath);// 拼接md5新的文件名const newFileName ${originPath}${md5sum}${fileExtension};fs.rename(originFilePath, newFileName, (err) {if (err) throw err;console.log(文件已重命名);// 需要删除旧包 就加上这句逻辑。不用的话 那就不加了fs.readdir(originPath, (error, files) {if (error) throw error;(files || []).forEach((element) {if (element ! path.basename(newFileName)) {// 删除旧zipfs.unlink(path.join(originPath, element),(unlinkErr) {if (unlinkErr) throw unlinkErr;console.log(element 旧包已删除);},);}});});});},}),],
});