# spark-md5
# 1. 安装
# 1.1. npm
安装:
npm i spark-md5
引用:
import SparkMD5 from 'spark-md5';
SparkMD5.hash('张三123456');
# 1.2. script 标签
<!-- 开发 -->
<script src="./node_modules/spark-md5/spark-md5.js"></script>
<!-- 生产 -->
<script src="./node_modules/spark-md5/spark-md5.min.js"></script>
<script>
SparkMD5.hash('张三123456');
//=> ea000b6d22e95b5ae874453918efa533
</script>
# 2. 文本摘要
spark-md5:
SparkMD5.hash('张三123456');
//=> ea000b6d22e95b5ae874453918efa533
spring:
import org.springframework.util.DigestUtils;
String md5 = DigestUtils.md5DigestAsHex(password.getBytes());
System.out.println("md5 = " + md5);
//=> ea000b6d22e95b5ae874453918efa533
# 3. 文件摘要
spark-md5:
<div>
<input id="input" type="file">
<button id="btn">md5</button>
</div>
<div>
MD5: <span id="shown"></span>
</div>
<script src="libs/spark-md5.js"></script>
<script>
let inputElt = document.getElementById('input');
let shownElt = document.getElementById('shown');
let btnElt = document.getElementById('btn');
btnElt.addEventListener('click', () => {
if (inputElt.files.length === 0) {
console.error("请选择文件")
return;
}
const [ file ] = inputElt.files
md5File(file).then((md5) => {
console.log(md5);
shownElt.textContent = md5;
})
})
function md5File(file) {
return new Promise((resolve) => {
const blobSlice = File.prototype.slice;
const chunkSize = 2097152; // Read in chunks of 2MB
const chunks = Math.ceil(file.size / chunkSize);
let currentChunk = 0;
const spark = new SparkMD5.ArrayBuffer();
const fileReader = new FileReader();
fileReader.onload = (e) => {
spark.append(e.target.result); // Append array buffer
currentChunk += 1;
if (currentChunk < chunks) {
loadNext();
} else {
const data = spark.end();
resolve(data); // hash
}
};
fileReader.onerror = () => {
console.warn('oops, something went wrong.');
resolve('');
};
function loadNext() {
const start = currentChunk * chunkSize;
const end = ((start + chunkSize) >= file.size) ? file.size : start + chunkSize;
fileReader.readAsArrayBuffer(blobSlice.call(file, start, end));
}
loadNext();
})
}
</script>
spring:
import org.springframework.util.DigestUtils;
String filePath = "static/md5/files/吴钦飞-点风科技周计划-20250908-20250912.xlsx";
try (InputStream excelFileInputStream = this.getClass().getClassLoader().getResourceAsStream(filePath)) {
if (excelFileInputStream == null) {
return;
}
String md5 = DigestUtils.md5DigestAsHex(excelFileInputStream);
System.out.println("file md5 = " + md5);
//=> 0818233e8fa4404a99e54ac24fda3414
}
上一篇: 下一篇:
本章目录