クラスクリプト{
// 本文来源:龙哥博客
protected $key = “”; //公钥
プライベートファンクションキーED($txt,$encrypt_key)
{
$encrypt_key = md5($encrypt_key);
$ctr=0;
$tmp = "";
for ($i=0;$i
{
if ($ctr==strlen($encrypt_key)){
$ctr=0;
}
$tmp.= substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1);
$ctr++;
}
$tmpを返す
}
public function encrypt($txt,$key=”")
{
if(empty($key)){
$key=$this->key;
}
srand((double)microtime()*1000000);
$encrypt_key = md5(rand(0,32000));
$ctr=0;
$tmp = "";
for ($i=0;$i
{
if ($ctr==strlen($encrypt_key)){
$ctr=0;
}
$tmp.= substr($encrypt_key,$ctr,1) .
(substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1));
$ctr++;
}
return $this->keyED($tmp,$key);
}
public function decrypt($txt,$key=”")
{
if(empty($key)){
$key=$this->key;
}
$txt = $this->keyED($txt,$key);
$tmp = "";
for ($i=0;$i
{
$md5 = substr($txt,$i,1);
$i++;
$tmp.= (substr($txt,$i,1) ^ $md5);
}
$tmpを返す
}
パブリック関数 setKey($key)
{
if(empty($key)){
nullを返す;
}
$this->key=$key;
}
パブリック関数getKey()
{
return $this->key;
}
// http://www.veryhuo.com によるダウンロード
}
$string = “http://www.52blogger.com”;
$crypt= new Crypt();
$crypt->setKey(“http://www.52blogger.com”);
$enc_text = $crypt->encrypt($string,$crypt->getKey());
$dec_text = $crypt->decrypt($enc_text,$crypt->getKey());
echo「加密前:$string
」ん」;
echo「加密後 : $enc_text
」ん」;
echo “解密後 : $dec_text n”;
?>
実行結果:
加密前 : http://www.52blogger.com
加密後 : hSzQ'Z* kP~ y (WpVs = 6Q3 gZbR5Qk h tZ( f=Zm
)解密後 : http://www.52blogger.com