Javascript nodejs方法crypto.createCipheriv、crypto.createCipheriv.update和crypto.createCipheriv.final是否能够实现异步?

Javascript nodejs方法crypto.createCipheriv、crypto.createCipheriv.update和crypto.createCipheriv.final是否能够实现异步?,javascript,node.js,Javascript,Node.js,上面是我的代码,我想知道加密和解密方法是否应该是异步的?使用我的测试数据执行不到1毫秒,但是考虑到成千上万的并发用户,使用异步构建这些方法会更好吗?在早期的测试中,我无法保证它们是异步的,所以我想可能模块不能是异步的?使函数异步不会提高多个用户的性能,特别是如果这是一个REST服务。您应该考虑通过线程使用硬件。这并不能回答这个问题。一旦你有足够的钱,你将能够;相反- const crypto = require('crypto'); const util = require('util');

上面是我的代码,我想知道加密和解密方法是否应该是异步的?使用我的测试数据执行不到1毫秒,但是考虑到成千上万的并发用户,使用异步构建这些方法会更好吗?在早期的测试中,我无法保证它们是异步的,所以我想可能模块不能是异步的?

使函数异步不会提高多个用户的性能,特别是如果这是一个REST服务。您应该考虑通过线程使用硬件。

这并不能回答这个问题。一旦你有足够的钱,你将能够;相反-
const crypto = require('crypto');
const util = require('util');

class AES {
    constructor(key, iv) {
        if (!key) throw new Error('A 32 byte / 256 bit key is required.');
        if (!iv) throw new Error('Initialization vector is required.');

        this.key = key;
        this.iv = iv;
    }

    encrypt(data) {
        let cipher = crypto.createCipheriv('aes-256-cbc', this.key, this.iv);
        let encrypted = cipher.update(data, 'utf-8', 'hex');
        encrypted += cipher.final('hex');

        return encrypted;
    }

    decrypt(data) {
        let decipher = crypto.createDecipheriv('aes-256-cbc', this.key, this.iv);
        let decrypted = decipher.update(data, 'hex', 'utf-8');
        decrypted += decipher.final('utf-8');

        return decrypted;
    }

    static randomBytes = async bytes => {
        let result;
        result = await util.promisify(crypto.randomBytes)(bytes);

        return result;
    }

    sha256(data) {
        return crypto.createHash('sha256').update(data).digest('hex');
    }
}