angular - 如何在基于 Angular 7 的 Ionic 4 应用程序中使用 sha256 对文件进行哈希处理?
问题描述
我正在尝试在基于 Angular 7 的 Ionic 4 应用程序中使用 SHA256 对超过 1GB 的文件进行哈希处理。我想使用这个NPM 模块。但是没有文档。如何以及在何处导入此模块?或提出更好的选择。
我收到以下错误: 在此处输入图像描述
我试过: import * as sha256File from 'sha256-file';
这是 index.js 文件:文件夹中没有“crypto”或“fs”。
'use strict';
var crypto = require('crypto');
var fs = require('fs');
module.exports = function (filename, callback) {
var sum = crypto.createHash('sha256');
if (callback && typeof callback === 'function') {
var fileStream = fs.createReadStream(filename);
fileStream.on('error', function (err) {
return callback(err, null)
});
fileStream.on('data', function (chunk) {
try {
sum.update(chunk)
} catch (ex) {
return callback(ex, null)
}
});
fileStream.on('end', function () {
return callback(null, sum.digest('hex'))
})
} else {
sum.update(fs.readFileSync(filename));
return sum.digest('hex')
}
};
解决方案
看看钠(libsodium.js)。
Sodium 是一个现代的、易于使用的软件库,用于加密、解密、签名、密码哈希等。
它是 NaCl 的可移植、可交叉编译、可安装、可打包的分支,具有兼容的 API 和扩展 API,可进一步提高可用性。
它的目标是提供构建更高级别加密工具所需的所有核心操作。
Sodium 是跨平台和跨语言的。它可以在各种编译器和操作系统上运行,包括 Windows(使用 MinGW 或 Visual Studio、x86 和 x86_64)、iOS 和 Android。Javascript 和 WebAssembly 版本也可用并且完全受支持。所有常见编程语言的绑定都可用并且得到很好的支持。
设计选择强调安全性和易用性。但是,尽管强调高安全性,但原语总体上比大多数实现更快。
1.0.17 版本于 2019 年 1 月 7 日发布。
参考:
推荐阅读
- sql - 为什么这两个查询的性能有如此大的差异?
- soap - 使用 SOAP 消息从 Exchange Web 服务中使用 GetFolder 操作获取特定电子邮件的文件夹列表
- jquery - 如果文档在 30 天内未更新,如何取消突出显示文本
- netlogo - 在 Netlogo 中处理列表中的索引位置
- php - Symfony 4 - 无法访问表单数据
- javascript - 如何存储旧数组并将其与新更新的数组 useRef 和 useEffect 进行比较
- r - 将 UTF-8 十六进制转换为 Unicode 十六进制
- mongodb - MongoDB Sum-Query 不求和
- azure - 为特定 blob 而不是同一存储帐户中的其他 blob 创建 SAS 令牌
- java - 随机 java.util.ConcurrentModificationException: null