海运的博客

Firefox下Mason重定向

发布时间:November 13, 2014 // 分类:Firefox // No Comments

网上有3种版本的Mason的重定向写法:
原版重定向仅能普通字符替换,正则要使用脚本:

<mason>
Charset=utf8
Author=ShuangYa
Created=2014/06/13
Updated=
name=Google Lib Redirector
version=1.0
Website=
Comment=
Description=Google Lib Redirector
Usage=
Url=^http[s]{0,1}://(.*?)googleapis\.com/(.*?)$
</mason>
<parts>
part1=.@@@L3
</parts>
<part1>
function _masonRedirect(spec){
    return spec.replace(/^https/,'http').replace('googleapis.com','useso.com');
}
</part1>

紫云飞修改版使用:

http://function(url){return url.replace("aaa","bbb");} 

水鑫日修改版使用:

http://>>aaa>>bbb #普通字符替换
http://>*aaa(.*)>*bbb$1 #正则替换

此内容被密码保护

发布时间:November 12, 2014 // 分类:JS // No Comments

请输入密码访问

Typecho代码高亮Codebox转SyntaxHighlighter

发布时间:November 9, 2014 // 分类:PHP,Typecho // 1 Comment

由于SQL正则替换不支持反向引用使用PHP读取替换并重新写入数据库:

<?php
$db = 'typecho';
$user = 'root';
$pass = 'password';
try { 
  $dbo = new PDO('mysql:host=localhost;dbname='.$db, $user, $pass, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8';"));
} catch (PDOException $e) { 
  $error = $e->getMessage();
  die("PDO Execute Error : ".$error."\n");       
}
$dbo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$sql = "SELECT cid,text FROM typecho_contents";
$stmt = $dbo->query($sql);
//$result = $stmt->fetch(PDO::FETCH_ASSOC);
//var_dump($result);
while (list($cid,$text)=$stmt->fetch(PDO::FETCH_NUM)){
  echo $cid."\n";
  $pattern = "/<code\s+?lang=[\'\"](\w+?)[\'\"]>/i";
  //preg_match($pattern, $text, $matches);
  //print_r($matches);
  $text = preg_replace($pattern, "```\$1", $text);
  $text = preg_replace('/<code>/', "```", $text);
  $text = preg_replace('/<\/code>/', "```", $text);
  $text = preg_replace('/^/', '<!--markdown-->', $text);
  $st = $dbo->prepare("UPDATE typecho_contents set `text` = ? where cid = ?");
  $st->bindParam(1, $text);
  $st->bindParam(2, $cid);
  $st->execute();
}

PHP版本QQ密码及g_tk算法

发布时间:November 7, 2014 // 分类:PHP // No Comments

<?php
   function hexchar2bin($str)
   {
      $arr = '';
      $temp = null;
      for ($i = 0; $i < strlen($str); $i = $i + 2) {
         $arr .= "\\x" . substr($str, $i, 2);
      }
      eval('$temp="' . $arr . '";');
      return $temp;
   }

   function getUid($uid)
   {
      $temp = null;
      eval('$temp="' . $uid . '";');
      return $temp;
   }
   function getEncryption($password, $uin, $vcode)
   {
      $uin = getUid($uin);
      $str1 = hexchar2bin(strtoupper(md5($password)));
      $str2 = strtoupper(md5($str1 . $uin));
      return strtoupper(md5($str2 . strtoupper($vcode)));
   }
   //print_r(getEncryption('passwd','\x00\x00\x00\x00\xba\xaf\x34\x87','!GMO'));

   function utf8_unicode($c)
   {
      switch (strlen($c)) {
         case 1:
         return ord($c);
         case 2:
         $n = (ord($c[0]) & 0x3f) << 6;
         $n += ord($c[1]) & 0x3f;
         return $n;
         case 3:
         $n = (ord($c[0]) & 0x1f) << 12;
         $n += (ord($c[1]) & 0x3f) << 6;
         $n += ord($c[2]) & 0x3f;
         return $n;
         case 4:
         $n = (ord($c[0]) & 0x0f) << 18;
         $n += (ord($c[1]) & 0x3f) << 12;
         $n += (ord($c[2]) & 0x3f) << 6;
         $n += ord($c[3]) & 0x3f;
         return $n;
      }
   }

   function getGTK($str)
   {
      $hash = 5381;
      for ($i = 0, $len = strlen($str); $i < $len; ++$i) {
         $hash += ($hash << 5) + utf8_unicode($str[$i]);
      }
      return $hash & 2147483647;
   }
   print_r(getGTK('@LNKTSNI0F'));

另一种g_tk的算法:

<?php

function charCodeAt($str, $index)
{
  $char = mb_substr($str, $index, 1, 'UTF-8');

  if (mb_check_encoding($char, 'UTF-8'))
  {
    $ret = mb_convert_encoding($char, 'UTF-32BE', 'UTF-8');
    return hexdec(bin2hex($ret));
  }
  else
  {
    return null;
  }
}

function getGTK($str)
{
  $md5key = 'tencentQQVIP123443safde&!%^%1282';
  $salt = 5381;
  $hash = $salt << 5;
  for ($i = 0, $len = strlen($str); $i < $len; ++$i) 
  {
    $asciicode = charCodeAt($str[$i], 0);
    $hash = $hash . (($salt << 5) + $asciicode);
    $salt = $asciicode;
  }
  return md5($hash . $md5key);
}
echo getGTK('AYg8iSVJL58F4X2EHBbIT5BS');
分类
最新文章
最近回复
  • opnfense: 谢谢博主!!!解决问题了!!!我之前一直以为内置的odhcp6就是唯一管理ipv6的方式
  • liyk: 这个方法获取的IPv6大概20分钟之后就会失效,默认路由先消失,然后Global IPV6再消失
  • 海运: 不好意思,没有。
  • zongboa: 您好,請問一下有immortalwrt設定guest Wi-Fi的GUI教學嗎?感謝您。
  • 海运: 恩山有很多。
  • swsend: 大佬可以分享一下固件吗,谢谢。
  • Jimmy: 方法一 nghtp3步骤需要改成如下才能编译成功: git clone https://git...
  • 海运: 地址格式和udpxy一样,udpxy和msd_lite能用这个就能用。
  • 1: 怎么用 编译后的程序在家里路由器内任意一台设备上运行就可以吗?比如笔记本电脑 m参数是笔记本的...
  • 孤狼: ups_status_set: seems that UPS [BK650M2-CH] is ...