易语言/PHP/JS QQ BKN/GTK计算方法 - Kirin博客

易语言/PHP/JS QQ BKN/GTK计算方法

作者: Bee

全网最全的网络资源分享网站

标签:

QQPHP易语言

特别声明:部分文章为网络转载,资源使用一般不提供任何帮助,特殊资源除外,如有侵权请联系站长!请勿违法!本站文章仅供学习了解!技术无罪!

GTK跟BKN 据我了解是一种东西


易语言版

.版本 2 .子程序 计算bkn, 文本型 .参数 Skey, 文本型 .局部变量 基值, 整数型 .局部变量 计数, 整数型 .局部变量 长度, 整数型 .局部变量 结果, 整数型 基值  5381 计数  0 长度  取文本长度 (Skey) .判断循环首 (计数  长度) 基值  基值  左移 (基值, 5)  取代码 (Skey, 计数  1) 计数  计数  1 .判断循环尾 () 结果  位与 (基值, 2147483647) 返回 (到文本 (结果))


JS版

function getBKN(str){ var hash = 5381; for(var i = 0, len = str.length; i < len; ++i) { hash += (hash << 5) + str.charAt(i).charCodeAt(); } return hash & 0x7fffffff; }


PHP版

public function bkn($skey) {     $hash = 5381;     for ($i = 0, $len = strlen($skey); $i < $len; ++$i){         $hash +=($hash << 5) + charCodeAt($skey, $i);     }     return $hash & 2147483647; } public function charCodeAt($str, $index){     $char = mb_substr($str, $index, 1, 'UTF-8');     $value = null;     if (mb_check_encoding($char, 'UTF-8')){         $ret = mb_convert_encoding($char, 'UTF-32BE', 'UTF-8');         $value = hexdec(bin2hex($ret));     }     return $value; }

分享到:
加入交流群
未经允许不得转载:

作者: Bee, 转载或复制请以 超链接形式 并注明出处 Kirin博客
原文地址: 《易语言/PHP/JS QQ BKN/GTK计算方法》 发布于2022-6-14

切换注册

登录

您也可以使用第三方帐号快捷登录

切换登录

注册

觉得文章有用就加入交流群吧

QQ扫一扫