感谢下面的开源库:
- spark-md5, 这个经本人测试, 确实是纯js版中性能最高的一个, 本仓库引入进来, 调整为ESM方式使用。
以上这个库, 在index.js中有引入。对体积有要求的, 可以单独使用。
// 多合一
import { sha1, hmac, md5, base64encode } from '//jscdn.ink/crypto.web.js/latest/index.js' // 大陆用户可使用此加速地址
import { md5, md5Sum } from '//jscdn.ink/crypto.web.js/latest/md5.js'
import { base64encode, base64decode } from '//jscdn.ink/crypto.web.js/latest/base64.js'
常规的md5函数, 可对字符串(数字类型也可以), 进行加密。如果要对一个超级大的文本进行md5求值的话, 建议改成下面的 md5Sum()
该方法可用于对文件求md5值, 需传入
ArrayBuffer
对象, 可用FileReader
得到arraybuffer
值, 新浏览器的Blob
对象,也有个arraybuffer
原型方法。
base64编码, 支持中文。
base64解码。
生成一个唯一的24位的随机字符串。 只保证单机唯一。
将一个
arraybuffer
对象, 转为 十六进制字符串。
将一个
arraybuffer
对象, 转为Binary
字符串。
对指定字符串求
sha1
值。注意: 该方法返回的不是字符串, 而是一个Promise对象。
对指定字符串求
sha256
值。注意: 该方法返回的不是字符串, 而是一个Promise对象。
对指定字符串求
sha512
值。注意: 该方法返回的不是字符串, 而是一个Promise对象。
散列算法(也称为哈希算法),用来实现一些重要数据的模糊处理,以达到隐藏明文的目的。 上面的sha1、sha256等,其实就是基于这个再次封装的结果; algorithm,可选值有: SHA-1, SHA-256, SHA-384, SHA-512。
注意: 该方法返回的不是字符串, 而是一个Promise对象。
12. hmac(algorithm<String>
, data<String>|<ArrayBuffer>|<Uint8Array>
, key<String>|<Uint8Array>
, outEncode<String>
)
HMAC算法,是在散列算法的基础上,与一个密钥结合在一起,以阻止对签名完整性的破坏。 与上面的散列算法相比,多了一个密钥的参数key。
注意: 该方法返回的不是字符串, 而是一个Promise对象。