在Nest js中导入crypto-js时未定义cryptojs



我正在Nestjs服务中导入crypto-js,遇到这个错误


类型错误:无法读取未定义的属性(读取"enc"(在CryptoUtilsService.decryptASEx


代码:

import { Injectable, Logger } from '@nestjs/common';
import { CmacDto, Crc32Dto } from './dto';
import CryptoJS from 'crypto-js';
import { AesDecryptDto } from './dto/aesDecrypt.dto';
@Injectable()
export class CryptoUtilsService {
private readonly logger = new Logger(CryptoUtilsService.name);

decryptAESHex(data: AesDecryptDto) {
let keyHex = CryptoJS.enc.Hex.parse(data.key);
let ivHex = CryptoJS.enc.Hex.parse(data.iv);
let encryptedWordArray = CryptoJS.enc.Hex.parse(
data.encryptedData.toUpperCase(),
);
let encString = CryptoJS.enc.Base64.stringify(encryptedWordArray);
// console.log("before decryption: ", encryptedString.toUpperCase(), encString);
let decryptedResp = CryptoJS.AES.decrypt(encString, keyHex, {
iv: ivHex,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.NoPadding,
});
// console.log("after decryption:: ", decryptedResp)
return CryptoJS.enc.Hex.stringify(decryptedResp).toUpperCase();
}
}

我已经安装了crypto-js和@types/crypto-js模块。还尝试删除node_modules并重新安装。它似乎在没有typescript的其他节点项目上运行良好。我搞不清楚这里出了什么问题。

crypto-js不对其基本包使用默认导出,使用import * as CryptoJS from 'crypto-js'正确导入包

最新更新