写点什么

YashanDB CRYPT_SIGN 函数

作者:YashanDB
  • 2025-05-08
    广东
  • 本文字数:705 字

    阅读完需:约 2 分钟

CRYPT_SIGN 函数以expr2为签名者需要提供的私钥、以expr3为签名私钥的算法类型、以expr4为签名者的签名 ID 对expr1的数据进行签名,返回一个 HEX 格式的 VARCHAR 类型的签名串。

本函数遵循如下规则:

  • expr1 待签名的数据只支持 VARCHAR/CHAR 类型。

  • expr2 是 HEX 格式的签名私钥,可以通过 CRYPT_KEY 函数创建相应的公私钥对,若不提供或非法,则函数报错。

  • expr3 是签名的算法类型,目前仅支持 SM2 类型的签名和验签。

  • expr4 支持字符形式的签名 ID。

  • 当 expr1 为 null 时返回 null。

  • 函数返回的签名串,遵循 ASN.1 DER 编码规则。

Caution:

CRYPT_SIGN 函数中的密钥由用户管理,请勿将包含 CRYPT_SIGN 函数的 SQL 写入 OUTLINE 或者 SQLMAP 视图中,以避免潜在的密钥泄露风险。

示例

SELECT CRYPT_KEY('sm2') FROM dual;
CRYPT_KEY('SM2') ---------------------------------------------------------------- PUBLIC:7CB4E274EC64D0AC2BBEC9641731E3A88BF1959572BCDB19C7A3574FC0A6C0DEF3F12B4273F1085EFA96E22415869358EA04DC49590E3464DF6DC85898E38271;PRIVATE:7048688F3345C89E90F5B1E99DED97B5901A01F1C650A99CA752088E1CE22CAA

SELECT CRYPT_SIGN('how are you? I am fine, thank you', '7048688F3345C89E90F5B1E99DED97B5901A01F1C650A99CA752088E1CE22CAA', 'sm2', 'lilei') signature FROM dual;
SIGNATURE ---------------------------------------------------------------- 3046022100B8D8BF5A2E44575BE2B02AC0BE904867D61A605981E5AE324FF79A47C68C55DA022100B6F690EC9DBC64C68AEBF46D0A4383D99D12B516BF297E7A248AD2B9624709D7

复制代码


用户头像

YashanDB

关注

全自研国产新型大数据管理系统 2022-02-15 加入

还未添加个人简介

评论

发布
暂无评论
YashanDB CRYPT_SIGN函数_YashanDB_InfoQ写作社区