當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Node.js ECDH.convertKey(key, curve[, inputEncoding[, outputEncoding[, format]]])用法及代碼示例


靜態方法:ECDH.convertKey(key, curve[, inputEncoding[, outputEncoding[, format]]])

添加於:v10.0.0

參數

keycurve 指定的 EC Diffie-Hellman 公鑰轉換為 format 指定的格式。 format 參數指定點編碼,可以是 'compressed''uncompressed''hybrid' 。提供的 key 使用指定的 inputEncoding 進行解釋,返回的 key 使用指定的 outputEncoding 進行編碼。

使用 crypto.getCurves() 獲取可用曲線名稱的列表。在最近的OpenSSL 版本中,openssl ecparam -list_curves 還將顯示每個可用橢圓曲線的名稱和說明。

如果未指定format,則該點將以'uncompressed' 格式返回。

如果未提供 inputEncoding,則 key 應為 Buffer TypedArrayDataView

示例(解壓縮 key ):

const {
  createECDH,
  ECDH
} = await import('node:crypto');

const ecdh = createECDH('secp256k1');
ecdh.generateKeys();

const compressedKey = ecdh.getPublicKey('hex', 'compressed');

const uncompressedKey = ECDH.convertKey(compressedKey,
                                        'secp256k1',
                                        'hex',
                                        'hex',
                                        'uncompressed');

// The converted key and the uncompressed public key should be the same
console.log(uncompressedKey === ecdh.getPublicKey('hex'));const {
  createECDH,
  ECDH,
} = require('node:crypto');

const ecdh = createECDH('secp256k1');
ecdh.generateKeys();

const compressedKey = ecdh.getPublicKey('hex', 'compressed');

const uncompressedKey = ECDH.convertKey(compressedKey,
                                        'secp256k1',
                                        'hex',
                                        'hex',
                                        'uncompressed');

// The converted key and the uncompressed public key should be the same
console.log(uncompressedKey === ecdh.getPublicKey('hex'));

相關用法


注:本文由純淨天空篩選整理自nodejs.org大神的英文原創作品 ECDH.convertKey(key, curve[, inputEncoding[, outputEncoding[, format]]])。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。