php教程

超轻量级php框架startmvc

PHP实现的ID混淆算法类与用法示例

更新时间:2020-03-29 07:51:55 作者:startmvc
本文实例讲述了PHP实现的ID混淆算法类与用法。分享给大家供大家参考,具体如下:<?p

本文实例讲述了PHP实现的ID混淆算法类与用法。分享给大家供大家参考,具体如下:


<?php
/**
 * ID混淆算法
 */
class IdCrypt
{
 /**
 * 对整数id进行可逆混淆
 */
 public static function encodeId($id)
 {
 $sid = ($id & 0xff000000);
 $sid += ($id & 0x0000ff00) << 8;
 $sid += ($id & 0x00ff0000) >> 8;
 $sid += ($id & 0x0000000f) << 4;
 $sid += ($id & 0x000000f0) >> 4;
 $sid ^= 11184810;
 return $sid;
 }
 /**
 * 对通过encodeId混淆的id进行还原
 */
 public static function decodeId($sid)
 {
 if (!is_numeric($sid)) {
 return false;
 }
 $sid ^= 11184810;
 $id = ($sid & 0xff000000);
 $id += ($sid & 0x00ff0000) >> 8;
 $id += ($sid & 0x0000ff00) << 8;
 $id += ($sid & 0x000000f0) >> 4;
 $id += ($sid & 0x0000000f) << 4;
 return $id;
 }
}
$idstr = new IdCrypt();
echo $encodeid = $idstr->encodeId('12345678');
echo "<br/>";
echo $decodeid = $idstr->decodeId($encodeid);
?>

运行结果:

13309518 12345678

PS:关于加密解密感兴趣的朋友还可以参考本站在线工具:

文字在线加密解密工具(包含AES、DES、RC4等): http://tools.jb51.net/password/txt_encode

MD5在线加密工具: http://tools.jb51.net/password/CreateMD5Password

在线散列/哈希算法加密工具: http://tools.jb51.net/password/hash_encrypt

在线MD5/hash/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160加密工具: http://tools.jb51.net/password/hash_md5_sha

在线sha1/sha224/sha256/sha384/sha512加密工具: http://tools.jb51.net/password/sha_encode

PHP ID混淆 算法类