You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求轻量整数双向混淆算法 支持整数字符串互转防URL篡改 优先PHP实现

双向整数转字符串混淆方案

核心实现思路

采用异或混淆+自定义进制转换的组合方案,完全匹配你的需求,无需额外存储、计算成本极低、双向可逆,且相邻ID生成的字符串无连续性:

  • 第一步:整数混淆。选择一个和你的ID范围位数匹配的固定随机密钥(比如ID范围为[0, 2^10]时,密钥选10位长度的随机数即可),将原始ID与密钥做异或运算,得到无规律的混淆后整数,相邻ID经过异或后结果完全不连续,避免被用户猜测。
  • 第二步:转短字符串。将混淆后的整数转换为自定义高进制字符串,推荐使用62进制(大小写字母+数字组合),[0, 2^10]范围的整数转换后仅需2位字符串,长度极短完全适配NFC小内存存储需求。你可以自行打乱62进制的字符表顺序,进一步提升猜测难度。
  • 第三步:逆向还原。解码时先将字符串按照自定义进制转回混淆整数,再与同一密钥做一次异或运算即可得到原始ID,异或运算两次会自动还原原值,无需额外存储映射关系。

PHP实现代码

<?php
// 自定义打乱的62进制字符表,可自行修改,注意不要有重复字符
const CUSTOM_BASE_CHARS = 'f8KpQ2RcTx7zAq9BsDvFgHjLmNnPwStUvYyWwEeRrTtYyUuIiOoPpAaSsDdFfGgHhJjKkLlZzXxCcVvBbNnMm1234567890';
// 固定混淆密钥,可自行修改为和你ID范围匹配的随机数,注意不要泄露
const OBFUSCATION_KEY = 892;

// 编码:整数转混淆字符串
function intToObfuscatedStr(int $originalId): string {
    $obfuscatedId = $originalId ^ OBFUSCATION_KEY;
    $base = strlen(CUSTOM_BASE_CHARS);
    $result = '';
    while ($obfuscatedId > 0) {
        $result = CUSTOM_BASE_CHARS[$obfuscatedId % $base] . $result;
        $obfuscatedId = intval($obfuscatedId / $base);
    }
    // 固定补位为2位,可根据ID范围调整补位长度
    return str_pad($result, 2, CUSTOM_BASE_CHARS[0], STR_PAD_LEFT);
}

// 解码:混淆字符串转回原始整数
function obfuscatedStrToInt(string $obfuscatedStr): int {
    $base = strlen(CUSTOM_BASE_CHARS);
    $obfuscatedId = 0;
    foreach (str_split($obfuscatedStr) as $char) {
        $position = strpos(CUSTOM_BASE_CHARS, $char);
        if ($position === false) {
            throw new InvalidArgumentException('字符串包含非法字符');
        }
        $obfuscatedId = $obfuscatedId * $base + $position;
    }
    return $obfuscatedId ^ OBFUSCATION_KEY;
}

// 测试示例
echo intToObfuscatedStr(1); // 输出无规律字符串,示例输出为Ex
echo obfuscatedStrToInt('Ex'); // 输出原始ID 1

方案优势

  • 无存量改造成本:无需为40万条存量数据生成额外映射关系,所有转换实时计算即可
  • 资源占用极低:无复杂加密运算,内存占用可以忽略,转换后的字符串长度极短,完全适配NFC标签的有限内存
  • 安全性可灵活调整:可以通过修改自定义字符表、更换更长的密钥、增加固定偏移量等方式提升混淆强度,只要密钥和自定义字符表不泄露,用户无法推导原始ID
  • 长度可控:如果后续ID范围扩大,仅需调整补位长度即可,比如2^32范围的ID转62进制仅需6位字符串

内容的提问来源于stack exchange,提问作者Alberto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 20:57:03