utf-8与utf8mb4与base64和md5

utf-8与utf8mb4的区别

utf8---》utf-8,mysql字节的,两个字节表示一个字符---》生僻字,表示存不了
utf8mb4--》utf-8,最多4个字节表示一个字符---》存标签,存生僻字

base64与md5

# base64只是编码格式,编码与解码,不涉及加密
base64 : 用64个字符来表示任意二进制数据,只能指定二进制类型进行base64编码,变长,可反解。
    
# md5 : 加密格式,固定长度,不可反解。
import { Sha256 } from '@aws-crypto/sha256-js' import CryptoJs from 'crypto-js' import encHex from 'crypto-js/enc-hex' onmessage = async function (event) { const data = event.data // 获取文件数据 // chunk方式读取文件 const chunkSize = 1024 * 1024 // 每次读取1MB const fileSize = data.size // 文件大小 let offset = 0 // 偏移量 const createSha256Uint8Array32 = new Sha256() // SHA256 Unit8Array(32) const createSha256 = CryptoJs.algo.SHA256.create() // SHA256 Hex const createMD5 = CryptoJs.algo.MD5.create() // MD5 while (offset < fileSize) { const chunk = new Uint8Array(await data.slice(offset, offset + chunkSize).arrayBuffer()) // 读取chunkSize大小的文件块 const wordArray = CryptoJs.lib.WordArray.create(chunk) createSha256.update(wordArray) createMD5.update(wordArray) createSha256Uint8Array32.update(chunk) offset += chunkSize // 计算进度 // const progress = Math.min(100, Math.round((offset / fileSize) * 100)) // console.log(progress) // 打印进度 // postMessage({ progress, offset, fileSize, }) // 将进度发送给主线程 } const [sha256Uint8Array32, sha256, md5] = await Promise.all([ createSha256Uint8Array32.digest(), // SHA256 Unit8Array(32) encHex.stringify(createSha256.finalize()), // SHA256 Hex encHex.stringify(createMD5.finalize()), // MD5 ]) const obj = { md5, // MD5 sha256, // SHA256 Hex sha256Int8Array32: Array.from(new Int8Array(sha256Uint8Array32)), // SHA256 Int8Array(32) } console.log(obj) // 打印结果对象 postMessage(obj) // 将结果对象发送给主线程 } 加功能计算文件sha1
06-06
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值