还是那个没有任何开发意义的小程序!!!这次的要求我就有点看不懂了,这是公司在日本出差的大佬写的接口,平时交流发在群里的文档全他喵是英文的,这让我连四级都没考过的怎么看的懂呢(是真的“没考过”),所以菜不是没有道理的。
在此之前大致搜索了一下xxhashjs与crypto-js的区别:
-
功能:
- xxhashjs:xxhashjs是一个用于计算哈希的库,它实现了XXHash算法。XXHash是一种非加密哈希算法,用于生成数据的校验和。它通常用于快速的哈希计算,例如在数据验证、数据完整性检查等场景下。
- crypto-js:crypto-js是一个广泛用于加密和解密操作的库。它支持多种加密算法,包括AES、DES、HMAC等,在数据保护、加密通信、密码学等领域有很多应用。
-
算法:
- xxhashjs:xxhashjs实现了XXHash算法,这是一种非加密哈希算法。XXHash是一种快速的哈希算法,适用于大规模数据的哈希计算。
- crypto-js:crypto-js实现了多种加密算法,包括对称加密算法(如AES、DES)、哈希算法(如MD5、SHA)、消息认证码算法(如HMAC)等。
-
应用场景:
- xxhashjs:xxhashjs适用于需要快速计算数据哈希值的场景,例如数据校验、数据完整性检查等。
- crypto-js:crypto-js适用于需要进行加密、解密和哈希计算的场景,例如加密通信、数据保护、密码学运算等。
-
库大小和性能:
- xxhashjs:由于xxhashjs只实现了单一算法,所以它的库大小相对较小。它被设计为非常高效,能够在处理大规模数据时提供快速的哈希计算。
- crypto-js:由于crypto-js实现了多种算法,所以它的库大小相对较大。它提供了更多的加密选项,但在某些特定场景下可能会比较慢。
综上所述,xxhashjs和crypto-js是两个不同的JavaScript库,用于不同的功能需求。使用xxhashjs可以进行快速哈希计算,而crypto-js则提供了更多的加密和哈希选项。选择使用哪个库取决于你的具体需求和使用场景。
crypto-js开始
老样子在项目所在的位置打开终端输入,如果已经安装过一起的库,就直接在命令行输入以下命令,不然就先执行npm init
后再执行以下命令:
npm install crypto-js
安装完成要记得构建npm:工具–>构建npm
crypto-js引入
const CryptoJS = require('crypto-js')
crypto-js使用
这里补充一下CryptoJS.SHA256、CryptoJS.SHA1、CryptoJS.MD5:
-
CryptoJS.SHA256
代表SHA-256算法,它是Secure Hash Algorithm 2(SHA-2)系列中的一种。SHA-256是一种密码学哈希函数,它将输入数据转换为固定长度(256位)的哈希值。 -
CryptoJS.SHA1
代表SHA-1算法,它是Secure Hash Algorithm 1(SHA-1)的简称。SHA-1也是一种密码学哈希函数,将输入数据转换为160位的哈希值。然而,由于SHA-1的安全性已经被证明容易受到碰撞攻击的影响,因此在一些安全敏感的场景中,建议使用更强大和安全的哈希算法,如SHA-256。 -
CryptoJS.MD5
代表MD5(Message Digest Algorithm 5),它是一种广泛使用的哈希算法。MD5将输入数据转换为128位的哈希值。然而,MD5也被发现存在严重的碰撞漏洞,因此在安全性要求较高的场景中不建议使用它。
// 在选择图片的事件处理函数中调用计算哈希值的方法
chooseImage() {
wx.chooseMedia({
count: 1,
mediaType: ['image'],
success: (res) => {
const tempFilePath = res.tempFiles[0].tempFilePath;
this.calculateFileHash(tempFilePath);
}
});
},
// 计算文件哈希值的方法
calculateFileHash(filePath) {
wx.getFileSystemManager().readFile({
filePath: filePath,
success: (res) => {
const fileData = res.data;
const hash = CryptoJS.SHA256(CryptoJS.lib.WordArray.create(fileData));
const hashResult = hash.toString(CryptoJS.enc.Hex);
console.log('文件哈希值:', hashResult);
},
fail: (err) => {
console.error('读取文件失败:', err);
}
});
}
在上面的代码中,chooseImage
方法用于选择图片文件并调用calculateFileHash
方法进行哈希值计算。calculateFileHash
方法通过wx.getFileSystemManager().readFile
函数读取选择的图片文件的二进制数据,并使用CryptoJS.SHA256
函数计算哈希值,然后使用toString
方法将哈希值转换为十六进制字符串形式。文章来源:https://www.toymoban.com/news/detail-742755.html
请注意,上述代码使用了SHA-256算法计算哈希值,生成的结果是256位(64个字符的十六进制字符串),而不是64位哈希值。如果你需要获取64位哈希值,你可以选择更短的哈希算法,例如SHA-1或MD5。你只需要将CryptoJS.SHA256
替换为CryptoJS.SHA1
或CryptoJS.MD5
即可。文章来源地址https://www.toymoban.com/news/detail-742755.html
到了这里,关于微信小程序使用crypto-js的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!