Javascript SHA256未定义

Javascript SHA256未定义,javascript,node.js,aes,sha256,cryptojs,Javascript,Node.js,Aes,Sha256,Cryptojs,我在尝试CryptoJS库时遇到了一个问题,即导入的哈希函数在类中不可见。这是我的密码: CryptoJS = require('crypto-js'); SHA256 = require('crypto-js/sha256'); class trCrypt { constructor(input,key) { this.input = input; this.key = SHA512(key).toString(); } encrypt(){ this.step1 = C

我在尝试CryptoJS库时遇到了一个问题,即导入的哈希函数在类中不可见。这是我的密码:

CryptoJS = require('crypto-js');
SHA256 = require('crypto-js/sha256');

class trCrypt {
  constructor(input,key) {
this.input = input;
this.key = SHA512(key).toString();
  }
  encrypt(){
    this.step1 = CryptoJS.AES.encrypt(this.input,this.key);
    return this.step1.toString()
  }
  decrypt(){
    const bytes =  CryptoJS.AES.decrypt(this.step1);
    this.dec1 = bytes.toString(CryptoJS.enc.Utf8);
    return this.dec1
  }
}
a = new trCrypt('hello','world');
console.log(a.encrypt());
console.log(a.decrypt());

[已解决]谢谢你的回答

在代码中导入了CryptoJs模块和SHA256函数,但没有导入SHA512函数

尝试添加:

SHA512 = require('crypto-js/sha512');

在代码中的脚本之上,您已经导入了CryptoJs模块和SHA256函数,但还没有导入SHA512函数

尝试添加:

SHA512 = require('crypto-js/sha512');

在脚本顶部,定义了SHA256,但不是SHA512,您正在导入
SHA256
,而是使用
SHA512
。此外,您不应该全局声明变量。(在您的情况下,最好使用
var
const
)这里真正的问题是,为什么您认为SHA256模块可以处理SHA512加密?请记住,做一件事,但要做好……定义了SHA256,但不是SHA512您正在导入的是
SHA256
,而是使用
SHA512
。此外,您不应该全局声明变量。(在您的情况下,最好使用
var
const
)这里真正的问题是,为什么您认为SHA256模块可以处理SHA512加密?记住,做一件事,但要做好。。。