原創聲明:本文為作者原創,未經允許不得轉載,經授權轉載需注明作者和出處
Base64是網絡上最常見的用于字節代碼的編碼方式之一(一個字母就是一字節byte)
采用Base64編碼具有不可讀性,即所編碼的數據不會被人用肉眼所直接看到。
Base64編碼非常適合HTTP環境下傳遞較長的標識信息(傳輸8Bit字節代碼)
其他應用程序中,也常常需要把二進制數據編碼為適合放在URL中的形式
迅雷地址的編碼
“迅雷專用地址”就是用Base64”加密”的,其過程如下:
1、在http://地址的前后分別添加AA和ZZ
2、對新的字符串進行Base64編碼,把迅雷地址還原為http地址,只需要用Base64解碼,然后去掉頭尾的AA和ZZ即可。
QQ旋風地址的編碼
更簡單,不加任何字符,直接就對地址進行Base64編碼了
此代碼在php環境,可直接運行。
<?php
$txt1=trim($_POST['text1']);
$txt3=trim($_POST['text3']);
$button=$_POST['button'];
?>
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN">
<html>
<head>
<title>迅雷和FlashGet,QQ旋風地址地址轉換工具</title>
<meta http-equiv="Content-Type" content="text/html;charset=gb2312">
<meta content="迅雷,FlashGet,地址轉換," name="keywords">
</head>
<body>
<form name="form1"method="post"action="">
<hr size="1">
<h3>迅雷轉換</h3>
<P>
轉換地址: <input name="text1" value="<?php echo$txt1; ?>" type="text" style="width:516px;"/>
</P>
<P>轉換后的: <input type="text"value="
<?php
if($button=="普通地址->迅雷地址") echo "thunder://".base64_encode("AA".$txt1."ZZ");
if($button=="迅雷地址->普通地址") echo substr(base64_decode(str_ireplace("thunder://","",$txt1)),2,-2);
?>
"style="width:516px;"/>
</P>
<P>
<input type="submit" name="button" value="普通地址->迅雷地址" />
<input type="submit" name="button" value="迅雷地址->普通地址" />
</P>
<h3>QQ旋風轉換</h3>
<P>
QQ旋風地址: <input name="text3" value="<?php echo $txt3; ?> " type="text" style="width:516px;"/>
</P>
<P>轉換后地址: <input type="text"value="
<?php
if($button=="普通地址->QQ旋風") echo"qqdl://".base64_encode($txt3);
if($button=="QQ旋風->普通地址")echo base64_decode(str_ireplace("qqdl://","",$txt3));
?>
"style="width:516px;"/>
</P>
<P>
<input type="submit" value="普通地址->QQ旋風" name="button" />
<input type="submit" value="QQ旋風->普通地址" name="button"/>
</P>
</form>
</body>
</html>
下列代碼僅在GBK中實現
UTF8代碼,請把if($button=="迅雷地址->普通地址") echo substr( base64_decode(str_ireplace("thunder://","",$txt1)),2,-2);
這句改為
if($button=="迅雷地址->普通地址") echo substr( mb_convert_encoding( base64_decode(str_ireplace("thunder://","",$txt1)) ) ,2,-2);
把charset=gb2312改為charset=utf-8