靜態方法:ECDH.convertKey(key, curve[, inputEncoding[, outputEncoding[, format]]])
添加於:v10.0.0
參數
key
<string> | <ArrayBuffer> | <Buffer> | <TypedArray> | <DataView>curve
<string>inputEncoding
<string>key
字符串的encoding。outputEncoding
<string> 返回值的encoding。format
<string> 默認:'uncompressed'
- 返回: <Buffer> | <string>
將 key
和 curve
指定的 EC Diffie-Hellman 公鑰轉換為 format
指定的格式。 format
參數指定點編碼,可以是 'compressed'
、 'uncompressed'
或 'hybrid'
。提供的 key 使用指定的 inputEncoding
進行解釋,返回的 key 使用指定的 outputEncoding
進行編碼。
使用
獲取可用曲線名稱的列表。在最近的OpenSSL 版本中,crypto.getCurves()
openssl ecparam -list_curves
還將顯示每個可用橢圓曲線的名稱和說明。
如果未指定format
,則該點將以'uncompressed'
格式返回。
如果未提供 inputEncoding
,則 key
應為
、 Buffer
TypedArray
或 DataView
。
示例(解壓縮 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'));
相關用法
- Node.js ECDH.setPublicKey(publicKey[, encoding])用法及代碼示例
- Node.js ECDH用法及代碼示例
- Node.js EventEmitter用法及代碼示例
- Node.js Error.message用法及代碼示例
- Node.js Error.stack用法及代碼示例
- Node.js Error.captureStackTrace(targetObject[, constructorOpt])用法及代碼示例
- Node.js EventTarget.addEventListener(type, listener[, options])用法及代碼示例
- Node.js ServerHttp2Stream http2stream.pushStream(headers[, options], callback)用法及代碼示例
- Node.js http2.Http2ServerRequest request.url用法及代碼示例
- Node.js request.socket用法及代碼示例
- Node.js assert.notEqual(actual, expected[, message])用法及代碼示例
- Node.js tlsSocket.authorized用法及代碼示例
- Node.js zlib.deflateRaw()用法及代碼示例
- Node.js http.IncomingMessage message.rawHeaders用法及代碼示例
- Node.js Console用法及代碼示例
- Node.js GM transparent()用法及代碼示例
- Node.js URL.protocol用法及代碼示例
- Node.js http.Agent.reuseSocket(socket, request)用法及代碼示例
- Node.js fs.filehandle.datasync()用法及代碼示例
- Node.js socket.bind()用法及代碼示例
- Node.js v8.getHeapSpaceStatistics()用法及代碼示例
- Node.js http2session.destroyed用法及代碼示例
- Node.js http.ServerResponse response.statusCode用法及代碼示例
- Node.js Buffer buf.writeBigUInt64BE(value[, offset])用法及代碼示例
- Node.js Http2ServerResponse.finished用法及代碼示例
注:本文由純淨天空篩選整理自nodejs.org大神的英文原創作品 ECDH.convertKey(key, curve[, inputEncoding[, outputEncoding[, format]]])。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。