首页 > 解决方案 > 如何在基于 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')
  }
};

标签: angulartypescriptionic-frameworkionic4ionic-cli

解决方案


看看(libsodium.js)。

Sodium 是一个现代的、易于使用的软件库,用于加密、解密、签名、密码哈希等。

它是 NaCl 的可移植、可交叉编译、可安装、可打包的分支,具有兼容的 API 和扩展 API,可进一步提高可用性。

它的目标是提供构建更高级别加密工具所需的所有核心操作。

Sodium 是跨平台和跨语言的。它可以在各种编译器和操作系统上运行,包括 Windows(使用 MinGW 或 Visual Studio、x86 和 x86_64)、iOS 和 Android。Javascript 和 WebAssembly 版本也可用并且完全受支持。所有常见编程语言的绑定都可用并且得到很好的支持。

设计选择强调安全性和易用性。但是,尽管强调高安全性,但原语总体上比大多数实现更快。

1.0.17 版本于 2019 年 1 月 7 日发布。

参考:


推荐阅读