加密锚标记内的查询字符串

时间:2013-01-01 20:14:55

标签: php

echo '<a class="bigbtn" href="'.'videoview.php?song_id='.$video['song_id'].'&'.'title='.$video['VideoTITLE'].'&'.'group='.$video['GroupName'].'&'.'artist='.$video['ByArtist'].'"></a>' ;

在浏览器中显示加密链接的最佳方法是什么,用户无法篡改它们?它不是关键任务链接。但是想让它更安全一点。

我正在尝试使用urlencode并使用base64解码,但我尝试将值分配给这样的变量。

 $song_id = urldecode(base64_decode($_Get['song_id']));

但转换没有发生。

,解码并没有像我想的那样发生。

2 个答案:

答案 0 :(得分:3)

Base64是一种以ASCII字符串格式表示二进制数据的方法,它与加密无关。

假设加密/解密发生在服务器端:

加密:mcrypt-encrypt。 然后,使用:mcrypt-decrypt

解密

一个实现示例:

<?php
    $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
    $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
    $key = "secret";
    $text = "Keep it secret, keep it safe";

    //encrypt
    $crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_ECB, $iv);

    //decrypt
    $originaltext = mcrypt_decrypt (MCRYPT_RIJNDAEL_256, $key ,$crypttext ,  MCRYPT_MODE_ECB, $iv);
?>

答案 1 :(得分:0)

模糊变量或ID几乎永远不会得到回报:如果您想保护资源,请使用authorization

如果您想防止大量下载,请使用IP监控来监控访问/配额。

但是简单的查询/网址搞乱是一种廉价的解决方案,在我看来不会长期支付。