跳到主要内容

Crypto

2024年10月14日
柏拉文
越努力,越幸运

一、crypto


Crypto 模块提供了加密功能,包含对 OpenSSL 的哈希、HMAC、加密、解密、签名、以及验证功能的一整套封装。

使用 require('crypto') 来访问该模块。

const crypto = require('crypto');

二、crypto.constants


三、crypto.fips


四、crypto.checkPrime(candidate[, options], callback)


五、crypto.checkPrimeSync(candidate[, options])


六、crypto.createCipheriv(algorithm, key, iv[, options])


七、crypto.createDecipheriv(algorithm, key, iv[, options])


八、crypto.createDiffieHellman(prime[, primeEncoding][, generator][, generatorEncoding])


九、crypto.createDiffieHellman(primeLength[, generator])


十、crypto.createDiffieHellmanGroup(name)


十一、crypto.createECDH(curveName)


十二、crypto.createHash(algorithm[, options])


十三、crypto.createHmac(algorithm, key[, options])


十四、crypto.createPrivateKey(key)


十五、crypto.createPublicKey(key)


十六、crypto.createSecretKey(key[, encoding])


十七、crypto.createSign(algorithm[, options])


十八、crypto.createVerify(algorithm[, options])


十九、crypto.diffieHellman(options)


二十、crypto.hash(algorithm, data[, outputEncoding])


二十一、crypto.generateKey(type, options, callback)


二十二、crypto.generateKeyPair(type, options, callback)


二十三、crypto.generateKeyPairSync(type, options)


二十四、crypto.generateKeySync(type, options)


二十五、crypto.generatePrime(size[, options[, callback]])


二十六、crypto.generatePrimeSync(size[, options])


二十七、crypto.getCipherInfo(nameOrNid[, options])


二十八、crypto.getCiphers()


二十九、crypto.getCurves()


三十、crypto.getDiffieHellman(groupName)


三十一、crypto.getFips()


三十二、crypto.getHashes()


三十三、crypto.getRandomValues(typedArray)


三十四、crypto.hkdf(digest, ikm, salt, info, keylen, callback)


三十五、crypto.hkdfSync(digest, ikm, salt, info, keylen)


三十六、crypto.pbkdf2(password, salt, iterations, keylen, digest, callback)


三十七、crypto.pbkdf2Sync(password, salt, iterations, keylen, digest)


三十八、crypto.privateDecrypt(privateKey, buffer)


三十九、crypto.privateEncrypt(privateKey, buffer)


四十、crypto.publicDecrypt(key, buffer)


四十一、crypto.publicEncrypt(key, buffer)


四十二、crypto.randomBytes(size[, callback])


四十三、crypto.randomFillSync(buffer[, offset][, size])


四十四、crypto.randomFill(buffer[, offset][, size], callback)


四十五、crypto.randomInt([min, ]max[, callback])


crypto.randomInt([min, ]max[, callback])crypto模块的内置应用程序编程接口,用于根据我们的使用情况同步或异步创建随机整数

语法

crypto.randomInt([min,]max [, callback]);
  • min: 要生成的随机Int的可选最小值(包括在内)。默认值是 : 0

  • max: 要生成随机Int所需的最大值(不包括)

  • callback: 一个可选的回调函数, 在生成随机整数后执行。如果制定了回调, 则方法异步工作,否则默认同步工作

返回值

返回一个随机整数n, min <= n < max

应用场景

  • 场景一、异步获取[min,max]的整数

    const crypto = require("crypto");

    crypto.randomInt(2,10,(error,n)=>{
    if(error){
    throw error;
    }
    console.log("[2,10] 区间的随机整数",n);
    });
  • 场景二、同步获取[0,max]的整数

    const crypto = require("crypto");

    const random = crypto.randomInt(10);
    console.log(random);
  • 场景三、同步获取[min,max]的整数

    const crypto = require("crypto");

    const random = crypto.randomInt(2,10);
    console.log(random);

四十六、crypto.randomUUID([options])


四十七、crypto.scrypt(password, salt, keylen[, options], callback)


四十八、crypto.scryptSync(password, salt, keylen[, options])


四十九、crypto.secureHeapUsed()


五十、crypto.setEngine(engine[, flags])


五十一、crypto.setFips(bool)


五十二、crypto.sign(algorithm, data, key[, callback])


五十三、crypto.subtle


五十四、crypto.timingSafeEqual(a, b)


五十五、crypto.verify(algorithm, data, key, signature[, callback])


五十六、crypto.webcrypto


参考资料


Node.js 中文网