# `naisi_string_version`

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

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

## 函数签名

```php
function naisi_string_version(string $input): string
```

## 调用前提

应用入口先调用 [naisi_is_ext_license_valid](/web/developers/naisilib/naisi-is-ext-license-valid) 并确认返回 `true`。只验证同一请求内已有的有效 FULL/BASIC 证明；没有证明或证明失效时立即返回失败值，不现场补做完整校验。

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

## 参数

### `$input`

- 类型：`string`
- 必填：是
- 默认值：无
- 方向：输入参数。

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

## 返回值

类型：`string`

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

## 调用示例

```php
// 当前请求已通过许可校验。
$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`
