您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

16位md5压缩为8位字符串算法疑惑

2025/8/2 11:42:20发布17次查看
生成一个8位的随机字符串
function make_coupon_card() { $code = 'abcdefghijklmnopqrstuvwxyz'; $rand = $code[rand(0,25)] .strtoupper(dechex(date('m'))) .date('d').substr(time(),-5) .substr(microtime(),2,5) .sprintf('%02d',rand(0,99)); for( $a = md5( $rand, true ), $s = '0123456789abcdefghijklmnopqrstuv', $d = '', $f = 0; $f

对于( $g ^ ord( $a[ $f + 8 ] ) ) - $g & 0x1f 的按位异或 减去本身 再进行的与运算,最终的范围是0-31之间,这个是如何确定的?
回复内容: 生成一个8位的随机字符串
function make_coupon_card() { $code = 'abcdefghijklmnopqrstuvwxyz'; $rand = $code[rand(0,25)] .strtoupper(dechex(date('m'))) .date('d').substr(time(),-5) .substr(microtime(),2,5) .sprintf('%02d',rand(0,99)); for( $a = md5( $rand, true ), $s = '0123456789abcdefghijklmnopqrstuv', $d = '', $f = 0; $f

对于( $g ^ ord( $a[ $f + 8 ] ) ) - $g & 0x1f 的按位异或 减去本身 再进行的与运算,最终的范围是0-31之间,这个是如何确定的?
( $g ^ ord( $a[ $f + 8 ] ) ) - $g & 0x1f
简而言之有个关键点,运算符-的优先级要比&高。
所以整体来看应该是( ( $g ^ ord( $a[ $f + 8 ] ) ) - $g )和0x1f进行与运算,
而0x1f就是十进制的31,取与的结果范围就限定在了0 - 31之间。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product