除了CodeCaster的回答:
URL 中的 ID 可以间接揭示一些与业务相关的信息。例如,从合同 ID=963 中,您的竞争对手可能会了解到您自上个月以来签订了 40 份新合同(ID 为例如 923)并获得了 cca 50k。这有时是不希望的。
屏蔽 ID 是很常见的,例如通过转换为掩码字符串。我通常分别使用openssl_encrypt 和openssl_decrypt。
下面是将 ID 转换为掩码字符串/从掩码字符串转换的示例:
public static function encryptOpenssl($textToEncrypt, $encryptionMethod = 'AES-256-CFB', $secretHash = "12#rk!", $raw = false, $password = ''){
$length = openssl_cipher_iv_length($encryptionMethod);
$iv = substr(md5($password), 0, $length);
return openssl_encrypt($textToEncrypt, $encryptionMethod, $secretHash, $raw, $iv);
}
public static function decryptOpenssl($textToDecrypt, $encryptionMethod = 'AES-256-CFB', $secretHash = "12#rk!", $raw = false, $password = ''){
$length = openssl_cipher_iv_length($encryptionMethod);
$iv = substr(md5($password), 0, $length);
return openssl_decrypt($textToDecrypt, $encryptionMethod, $secretHash, $raw, $iv);
}
您当然可以使用任何其他混淆算法,例如rot13,交换字符位置,字符映射,前置/附加无关字符等。