naisi_string_version

查看 Markdown

将原始字节字符串的 SHA-256 摘要编码为固定 10 字符的小写 Base36 版本号。

取完整摘要作为大端整数对 36^10 取模,不足 10 位时左补 0。结果只依赖输入字节, 不使用项目私有盐、构建材料或机器信息;与 naisi_string_fingerprint() 使用相同鉴权。

函数签名

function naisi_string_version(string $input): string

调用前提

应用入口先调用 naisi_is_ext_license_valid 并确认返回 true。只验证同一请求内已有的有效 FULL/BASIC 证明;没有证明或证明失效时立即返回失败值,不现场补做完整校验。

授权类别:LICENSE;执行模式:PROOF。许可不代替登录、租户或权限上下文;身份与数据要求见本页参数及用途说明。

参数

$input

  • 类型:string
  • 必填:是
  • 默认值:无
  • 方向:输入参数。

原始字节字符串,包括空字符串及嵌入 NUL;不进行去空白、大小写或 Unicode 规范化。

返回值

类型:string

成功时返回 10 位 [a-z0-9] 版本号,空输入也有确定版本;未授权或计算失败时返回空字符串。

调用示例

// 当前请求已通过许可校验。
$version = naisi_string_version('abc');
if ($version === '') { throw new RuntimeException('版本生成失败'); }
var_export($version);

算法固定测试向量见下表;未授权时返回空字符串。

输入版本号
''vixqqhkd3p
'abc'km3vt5as31
"a\0b"(含 NUL)qsesh9j5tk
'中文'(UTF-8)t6erptzcpt

版本信息

  • 实现模块:crypto
  • 授权类别:LICENSE / PROOF
  • 失败回退:空字符串 ""
  • 文档同步:2026-10-18