CryptoJS渐进式加密



是否有关于如何使用CryptoJS进行渐进式加密的其他教程或文档?他们自己关于它的文档有点缺乏信息。

这些是我找到的信息:

https://cryptojs.gitbook.io/docs/progressive-cipheringhttps://github.com/brix/crypto-js/blob/develop/docs/QuickStartGuide.wiki

我的解决方案是:

export function calcSha1 (file: File): Promise<string> {
const reader = new FileReader()
const promise = new Promise<string>(
(resolve) => {
reader.onloadend = (evt: ProgressEvent<FileReader>) => {
const sha1Hash = CryptoJS.algo.SHA1.create()
let currentPosition = 0
const chunkSize = 10 * 1024 * 1024 // 10MB
while (currentPosition < file.size) {
let endPosition = currentPosition + chunkSize
if (endPosition > file.size) {
endPosition = file.size
}
const blob = evt.target?.result?.slice(currentPosition, endPosition)
const wordArray = CryptoJS.lib.WordArray.create(blob)
sha1Hash.update(wordArray)
currentPosition += chunkSize
}
const result = sha1Hash.finalize()
resolve(result.toString())
}
}
)
reader.readAsArrayBuffer(file)
return promise
}

最新更新