javascript - 类型错误:generateKeyPairSync 不是函数

标签 javascript node.js typescript cryptography typeerror

我正在尝试使用 generateKeyPairSync() node.js 的crypto 模块的功能。但是我得到一个 typerError 说没有这样的功能。
这很奇怪,因为同一模块的另一个函数 createCipher() 工作得很好!

示例代码如下:

import * as cryp from 'crypto';

export function generate_keys() {
  console.log('hey there!');
  const keyPair = cryp.generateKeyPairSync('rsa', {
    modulusLength: 4096,
    publicKeyEncoding: {
      type: 'spki',
      format: 'pem'
    },
    privateKeyEncoding: {
      type: 'pkcs8',
      format: 'pem',
      cipher: 'aes-256-cbc',
      passphrase: 'top secret'
    }
  });
  console.log(keyPair);
}


function encrypt(data: string) {
  let cipher = cryp.createCipher('aes-256-ecb', 'pass');
  cipher.update(data, 'utf8');
  return cipher.final('hex');
}


// This is working
console.log(encrypt('asa'));

// Getting error - 'generateKeyPairSync is not a function'
generate_keys();

这是完整的控制台输出:

[Running] ts-node "d:\projects\myProject\src\ply.ts"
4eb35bc94bd4d17fad4857b17558b2ad
hey there!

d:\projects\myProject\src\ply.ts:5
  const keyPair = cryp.generateKeyPairSync('rsa', {
                       ^
TypeError: cryp.generateKeyPairSync is not a function
    at generate_keys (d:\projects\myProject\src\ply.ts:5:24)
    at Object.<anonymous> (d:\projects\myProject\src\ply.ts:33:1)
    at Module._compile (internal/modules/cjs/loader.js:689:30)
    at Module.m._compile (C:\Users\anmolsingh.jaggi\AppData\Local\Yarn\Data\global\node_modules\ts-node\src\index.ts:439:23)
    at Module._extensions..js (internal/modules/cjs/loader.js:700:10)
    at Object.require.extensions.(anonymous function) [as .ts] (C:\Users\anmolsingh.jaggi\AppData\Local\Yarn\Data\global\node_modules\ts-node\src\index.ts:442:12)
    at Module.load (internal/modules/cjs/loader.js:599:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
    at Function.Module._load (internal/modules/cjs/loader.js:530:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:742:12)

[Done] exited with code=1 in 2.097 seconds

最佳答案

From the docs :

Added in: v10.12.0

我猜你运行的是早期版本的 Node

关于javascript - 类型错误:generateKeyPairSync 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53867515/

相关文章:

javascript - .click 事件在某些 div ID 冲突时不起作用?

javascript - Jquery检测具有相同ID的多个输入中的按键

angular - Angular 4 中 HTTP 错误的集中处理

javascript - URL 中的 HTML 和 CSS 导致 404 错误(用户代理 = Trident/4.0)

javascript - 异步地为 Controller 变量赋值 - AngularJS

javascript - AES - python 中的 Pycrypto 加密和 Node.js 中的 Crypto 解密

Typescript - 返回一个空数组而不声明局部变量

typescript - Angular2 中的 ng-switch

javascript - 使用 Sails.js 如何制作/users/me 与关联一起使用的路线?

Node.js 数据库与 MongoDB 的连接?