gmkitx API - v0.10.1
    正在准备搜索索引...

    变量 compressPublicKey常量

    compressPublicKey: (publicKey: BytesLike) => string = sm2CompressPublicKey

    旧版无前缀 SM2 公钥压缩入口。

    类型声明

      • (publicKey: BytesLike): string
      • 压缩公钥(从非压缩格式转换为压缩格式)

        SM2 公钥是椭圆曲线上的点 (x, y),有两种表示格式:

        1. 非压缩格式(65 字节):04 || x || y

          • 前缀 04 表示非压缩格式
          • x 坐标:32 字节
          • y 坐标:32 字节
          • 总长度:1 + 32 + 32 = 65 字节(130 个十六进制字符)
        2. 压缩格式(33 字节):02/03 || x

          • 前缀 02 表示 y 坐标为偶数
          • 前缀 03 表示 y 坐标为奇数
          • x 坐标:32 字节
          • 总长度:1 + 32 = 33 字节(66 个十六进制字符)

        压缩的原理: 由于椭圆曲线方程 y² = x³ + ax + b,给定 x 坐标,可以计算出两个可能的 y 值 (一个为正,一个为负,或者说一个为奇数,一个为偶数)。 因此只需要保存 x 坐标和 y 的奇偶性,就可以恢复完整的点坐标。

        优势:

        • 节省存储空间(从 65 字节减少到 33 字节,节省约 49%)
        • 节省网络传输带宽
        • 适合资源受限的环境(如物联网设备)

        参数

        • publicKey: BytesLike

          非压缩格式的公钥(十六进制字符串,04 + x + y)

        返回 string

        压缩格式的公钥(十六进制字符串,02/03 + x)

        const uncompressed = '04...'; // 130 个字符
        const compressed = compressPublicKey(uncompressed); // 66 个字符

    请改用 sm2CompressPublicKey