Javascript 如何在JS的CryptoMD5方法中使用nodejs crypto
我正在react项目中使用ExpresseJS,该项目使用webpack 如中所述,我使用了以下方法: 我不想使用aws sdk,因为包的大小是可以正常工作的 但“数据”是ArrayBuffer的类型。所以我试着把它转换成字符串Javascript 如何在JS的CryptoMD5方法中使用nodejs crypto,javascript,node.js,webpack,aws-sdk,evaporate.js,Javascript,Node.js,Webpack,Aws Sdk,Evaporate.js,我正在react项目中使用ExpresseJS,该项目使用webpack 如中所述,我使用了以下方法: 我不想使用aws sdk,因为包的大小是可以正常工作的 但“数据”是ArrayBuffer的类型。所以我试着把它转换成字符串 cryptoMd5Method: function (data) { var enc = new TextDecoder(); var dataString = enc.decode(data); var computed = crypto.c
cryptoMd5Method: function (data) {
var enc = new TextDecoder();
var dataString = enc.decode(data);
var computed = crypto.createHash('md5').update(dataString).digest('base64');
return computed ;
}
但这并不能正确计算摘要
那么,考虑到nodejs加密选项,这个问题的解决方案应该是什么呢
另外,如何只导入AWS.util.crypto模块而不引用整个AWS sdk?这将帮助我保持捆绑包的小型化。整个aws sdk确实很大,但是对于前端浏览器,您可以构建一个较小的工件,只包含您需要的内容。 按照前面的说明操作
有关将ArrayBuffer转换为字符串以将其传递给哈希算法的更新方法的信息,请参见:。1导入与浏览器兼容的软件包: 从“js-MD5”导入MD5; 从“js-sha256”导入{sha256 as sha256}; 2.声明函数: const md5=x=>{const o=md5.create;o.updatex;返回o.base64;}; constsha256=x=>{consto=sha256.create;o.updatex;返回o.hex;}; 3配置中的用法: 。。。 computeContentMd5:对, CryptoMD5方法:=>md5, cryptoHexEncodedHash256:=>sha256, ...
您可以只使用所需内容构建aws sdk,而无需其他内容。遵循以下步骤:但问题是“数据”是ArrayBuffer-到底是什么问题?@IvanRubinson param data是int类型的ArrayBuffer。crypto.createHash'md5'。更新-->需要一个字符串参数。它成功了!虽然我希望得到一个解决方案围绕'加密',但这两个库是比'aws'sdk的大小小得多。
cryptoMd5Method: function (data) {
var enc = new TextDecoder();
var dataString = enc.decode(data);
var computed = crypto.createHash('md5').update(dataString).digest('base64');
return computed ;
}