如何加密url参数地址php

时间:2022年12月11日

/

来源:后施施而行

/

编辑:本站小编

收藏本文

下载本文

下面就是小编整理的如何加密url参数地址php,本文共8篇,希望大家喜欢。本文原稿由网友“后施施而行”提供。

篇1:如何加密url参数地址php

下面是可以将我们的url地址加密.确保我们提交的数据安全

以下是代码片段:

function keyED($txt,$encrypt_key) '定义一个keyED

{

$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++;

}

return $tmp;

}

function encrypt($txt,$key)

{

$encrypt_key = md5(mt_rand(0,100));

$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 keyED($tmp,$key);

}

function decrypt($txt,$key)

{

$txt = keyED($txt,$key);

$tmp = “”;

for($i=0;$i

{

$md5 = substr($txt,$i,1);

$i++;

$tmp.= (substr($txt,$i,1) ^ $md5);

}

return $tmp;

}

function encrypt_url($url,$key)

{

return rawurlencode(base64_encode(encrypt($url,$key)));

}

function decrypt_url($url,$key)

{

return decrypt(base64_decode(rawurldecode($url)),$key);

}

function geturl($str,$key)

{

$str = decrypt_url($str,$key);

$url_array = explode('&',$str);

if (is_array($url_array))

{

foreach ($url_array as $var)

{

$var_array = explode(“=”,$var);

$vars[$var_array[0]]=$var_array[1];

}

}

return $vars;

}

?>

下面是函数调用的实例

以下是代码片段:

$key = 'key';

//生产加密参数地址

for ($i=0;$i<10;$i++)

{

echo “php技术文章$i

”;

}

//获取参数地址

$get = geturl($_GET['url'],$key);

var_dump($get);

?>

OK就可以就加密了.....

篇2:百度搜索URL参数

百度搜索url中存在很多参数,懂程序的SEO黑帽对此特别感兴趣,百度URL参数中,cl=3 表示网页搜索,tn表示来源站点,word是关键词,ie表示编码方式,这里是utf-8编码.

想让百度没有广告吗?

想框架调用百度吗?

就来学学百度搜索参数吧。

百度URL命令中的参数

【必备参数】:

wd——查询的关键词(Keyword)

pn——显示结果的页数(Page Number)

cl——搜索类型(Class),cl=3为网页搜索

【可选参数】:

rn——搜索结果显示条数(Record Number),取值范围在10--100条之间,缺省设置rn=10

ie——查询输入文字的编码(Input Encoding),缺省设置ie=gb2312,即为简体中文

tn——提交搜索请求的来源站点

tn=baidulocal 表示百度站内搜索,返回的结果很干净,无广告干扰.

tn=baiducnnic 想把百度放在框架中吗?试试这个参数就可以了,是百度为Cnnic定制的

si——在限定的域名中搜索,比如想在sofuc.com的站内搜索可使用参数si=sofuc.com,要使这个参数有效必须结合ct参数一起使用.

ct——此参数的值一般是一串数字,估计应该是搜索请求的验证码

si和ct参数结合使用,比如在sofuc.com中搜索“wordpress”,可用:www.baidu.com/s?q=&ct=2097152&si=sofuc.com&ie=gb2312&cl=3&wd=wordpress

bs——上一次搜索的关键词(Before Search),估计与相关搜索有关

篇3:[]JS获取URL的参数

function GetRequest {

var url = location.search; //获取url中“?”符后的字串

var theRequest = new Object();

if (url.indexOf(“?”) != -1) {

var str = url.substr(1);//截取问号后的内容

strs = str.split(“&”);//根据&地址符分割

for(var i = 0; i < strs.length; i ++) {//循环赋值

theRequest[strs[i].split(“=”)[0]]=unescape(strs[i].split(“=”)[1]);

}

}

return theRequest;

}

调用方法:

篇4:PHP如何对用户密码进行加密

PHP如何对用户密码进行加密

第一种方法:可以使用如下方法对用户密码进行加密:MySql>SET user@”localhost” PASSWORD=PASSWORD(”Password”);

第二种方法:可以使用MYSQL的 PASSWORD函数进行用户密码的加密,例如:Insert into user(password, ……..) values (PASSWORD(”$password”,………));

可以在一个PHP文件里面include另外一个PHP文件两次吗

是的,可以在一个PHP文件里面include另外一个PHP文件两次,被include的那个php文件也会执行两次,所以如果在这个文件里面定义的`有一个class, 就会报出the class already defined的错误,

mysql的最长数据库名,表名,字段名可以是多长

数据库名字最长为64

数据表名字最长为64

字段名字最长为64

mysql_pconnect()和mysql_connect()有什么区别

两者的区别主要有两个:

1. 在进行数据库连接时,函数会先找同一个host, 用户和密码的persistent(持续的)的链接,如果能找到,则使用这个链接而不返回一个新的链接。

2. mysql_pconnect()创建的数据库连接在脚本执行完毕后仍然保留,可以被后来的代码继续使用,mysql_close()函数也不会关闭mysql_pconnect()创建的链接。

篇5:PHP、Java des加密解密实例

这篇文章主要介绍了PHP、Java des加密解密实例,des加密是对称加密中在互联网应用的比较多的一种加密方式,本文分别给出了PHP和JAVA版本的实现代码,需要的朋友可以参考下

des加密是对称加密中在互联网应用的比较多的一种加密方式,php 通过mcrypt扩展库来支持des加密,要在Php中使用des加密,需要先安装mcrypt扩展库

下面是加密解密的实例

代码如下:

$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);

$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);

$key = “This is a very secret key”;//密钥

$text = “Meet me at 11 o‘clock behind the monument.”;//需要加密的内容

echo ($text) . “\\n”;

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

echo $crypttext . “\\n”;//加密后的内容

echo mcrypt_decrypt(MCRYPT_RIJNDAEL_256,$key,base64_decode($crypttext),MCRYPT_MODE_ECB,$iv);//解密后的内容

在AES加密算法中通常会用到MCRYPT_RIJNDAEL_128、MCRYPT_RIJNDAEL_192、MCRYPT_RIJNDAEL_256三种,后面的128、192、256代表的是秘钥(也就是加密的Key)是多少bit的,比如使用的是MCRYPT_RIJNDAEL_128,那么用这个算法加密时秘钥长度就是128bit的,比如 $key = ‘fjjda0&9^$$#+*%$fada‘,是20个字符,那在实际加密的时候只用到前16个字符加密(16*8=128),不足128bit的php中会用‘\\0‘来补齐,

有的时候做项目对接的时候,可能你用的是Php加密的,而对方用的是java写的,对接的过程中就发现机加密后的内容对方解密不了,这是因为Php跟java在实现这个算法的时候有差别,要想正确加密解密需要两边都做下处理:

PHP:

代码如下:

<?php

class Security {

public static function encrypt($input, $key) {

$size = mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_ECB);

$input = Security::pkcs5_pad($input, $size);

$td = mcrypt_module_open(MCRYPT_RIJNDAEL_128, ‘‘, MCRYPT_MODE_ECB, ‘‘);

$iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND);

mcrypt_generic_init($td, $key, $iv);

$data = mcrypt_generic($td, $input);

mcrypt_generic_deinit($td);

mcrypt_module_close($td);

$data = base64_encode($data);

return $data;

}

private static function pkcs5_pad ($text, $blocksize) {

$pad = $blocksize - (strlen($text) % $blocksize);

return $text . str_repeat(chr($pad), $pad);

}

public static function decrypt($sStr, $sKey) {

$decrypted= mcrypt_decrypt(

MCRYPT_RIJNDAEL_128,

$sKey,

base64_decode($sStr),

MCRYPT_MODE_ECB

);

$dec_s = strlen($decrypted);

$padding = ord($decrypted[$dec_s-1]);

$decrypted = substr($decrypted, 0, -$padding);

return $decrypted;

}

}

$key = “1234567891234567”;

$data = “example”;

$value = Security::encrypt($data , $key );

echo $value.‘

‘;

echo Security::decrypt($value, $key );

Java:

代码如下:

import javax.crypto.Cipher;

import javax.crypto.spec.SecretKeySpec;

import org.apache.commons.codec.binary.Base64;

public class Security {

public static String encrypt(String input, String key){

byte[] crypted = null;

try{

SecretKeySpec skey = new SecretKeySpec(key.getBytes, “AES”);

Cipher cipher = Cipher.getInstance(“AES/ECB/PKCS5Padding”);

cipher.init(Cipher.ENCRYPT_MODE, skey);

crypted = cipher.doFinal(input.getBytes());

}catch(Exception e){

System.out.println(e.toString());

}

return new String(Base64.encodeBase64(crypted));

}

public static String decrypt(String input, String key){

byte[] utput = null;

try{

SecretKeySpec skey = new SecretKeySpec(key.getBytes(), “AES”);

Cipher cipher = Cipher.getInstance(“AES/ECB/PKCS5Padding”);

cipher.init(Cipher.DECRYPT_MODE, skey);

utput = cipher.doFinal(Base64.decodeBase64(input));

}catch(Exception e){

System.out.println(e.toString());

}

return new String(output);

}

public static void main(String[] args) {

String key = “1234567891234567”;

String data = “example”;

System.out.println(Security.encrypt(data, key));

System.out.println(Security.decrypt(Security.encrypt(data, key), key));

}

}

篇6:php实现cookie加密的方法

作者:小 字体:[增加 减小] 类型:

代码如下:

<?php

class Cookie

{

/**

* 解密已经加密了的cookie

*

* @param string $encryptedText

* @return string

*/

private static function _decrypt($encryptedText)

{

$key = Config::get(‘secret_key‘);

$cryptText = base64_decode($encryptedText);

$ivSize = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);

$iv = mcrypt_create_iv($ivSize, MCRYPT_RAND);

$decryptText = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $cryptText, MCRYPT_MODE_ECB, $iv);

return trim($decryptText);

}

/**

* 加密cookie

*

* @param string $plainText

* @return string

*/

private static function _encrypt($plainText)

{

$key = Config::get(‘secret_key‘);

$ivSize = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);

$iv = mcrypt_create_iv($ivSize, MCRYPT_RAND);

$encryptText = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $plainText, MCRYPT_MODE_ECB, $iv);

return trim(base64_encode($encryptText));

}

/**

* 删除cookie

*

* @param array $args

* @return boolean

*/

public static function del($args)

{

$name = $args[‘name‘];

$domain = isset($args[‘domain‘]) ? $args[‘domain‘] : null;

return isset($_COOKIE[$name]) ? setcookie($name, ‘‘, time() - 86400, ‘/‘, $domain) : true;

}

/**

* 得到指定cookie的值

*

* @param string $name

*/

public static function get($name)

{

return isset($_COOKIE[$name]) ? self::_decrypt($_COOKIE[$name]) : null;

}

/**

* 设置cookie

*

* @param array $args

* @return boolean

*/

public static function set($args)

{

$name = $args[‘name‘];

$value= self::_encrypt($args[‘value‘]);

$expire = isset($args[‘expire‘]) ? $args[‘expire‘] : null;

$path = isset($args[‘path‘]) ? $args[‘path‘] : ‘/‘;

$domain = isset($args[‘domain‘]) ? $args[‘domain‘] : null;

$secure = isset($args[‘secure‘]) ? $args[‘secure‘] : 0;

return setcookie($name, $value, $expire, $path, $domain, $secure);

}

}

希望本文所述对大家的php程序设计有所帮助,

篇7: 横行的时代 URL地址都会说谎

我叫URL,即“Uniform. Resource Locators”,意思是统一资源定位器,

横行的时代 URL地址都会说谎

。地址栏中的网址就属于我URL的一种表达方式。基本上所有访问网站的朋友都会使用到我,所以我的作用是很大的。也许很多朋友都不知道,我可是很会骗人的。特别是有一群自称 的家伙很喜欢让我欺骗你们,趁你们不留心,就让我带你进入植入了木马的网页。所以我今天要大胆的自揭其短,让你们看清我,千万不要被那些 利用我把你们给欺骗了。

说谎:URL欺骗的惯用招式

利用我URL骗人的方法有很多种,比如起个具有诱惑性的网站名称或使用易混的字母数字掉包进行银行网络钓鱼,还有漏洞百出的“%30%50”之类的Unicode编码等等。但是利用我骗人最惯用的招式莫过于以下两个:

1.@标志过滤用户名的解析

本来@标志是E-mail地址的用户名与主机的分隔符,但在我URL中同样适用,而且功能如出一辙。HTTP(超文本传输协议)规定了我URL的完整格式是“Http://Name:Password@IP地址或主机名”,其中的“IP地址或主机名”是必填项。@标志与其前面的“Name:Password”,意为“用户名:密码”,属于可选项。也就是说,在我URL中真正起解析作用的网址是从@标志后面开始的,这就是欺骗原理。

举例:某QQ好友发给你一个说是有最新大片免费下载的地址 “Http://www.sohu.com@www.Trojan.com.cn/HuiGeZi_Server.exe”,你敢上去就点吗?的确,一眼看上去是“www.sohu.com” 站的链接,而实际上这儿的“www.sohu.com”只是个写成 址形式的用户名(此处的密码为空),因为后面有@标志。而真正链接的网址却是“www.Trojan.com.cn/HuiGeZi_Server.exe”(这儿为了好理解,我杜撰了一个木马网站,其下有“灰鸽子”服务端),只要大家点击就会被种下木马。这个发来的URL地址其实完全等同于“Http:// www.Trojan.com.cn/HuiGeZi_Server.exe”,而与前面的用户名毫无关系,只是迷惑性可就大大提高了。即使没有这个用户名,也完全不影响浏览器对URL的解析。大家要是不信,就在地址栏中随便写上个像是“Http://abcdefg@www.sohu.com”之类的地址再回车试试,还是照样儿进入 站。

2.十进制的IP地址

常见的IP地址包括四个字节,一般表示形式为“xxx.xxx.xxx.xxx”(x表示一个十进制数码),例如“61.135.132.12”,

因为纯粹的数字IP地址过于抽象、难以记忆,所以采用域名服务DNS来与之对应。大家在浏览器地址栏中输入“Http://www.sohu.com”与“Http://61.135.132.12”的结果完全一样,都是访问 站,因为61.135.132.12就是搜狐域名www.sohu.com的IP地址。不过,如果再试试“Http://1032291340”的话,结果一定会让许多人吃惊,因为仍然打开了 站!

为什么一个十进制数“1032291340”等同于一个IP地址“61.135.132.12”呢?其实我刚才已经暗示过大家了,四位点分十进制形式的IP地址“61.135.132.12”代表一组32位二进制数码,如果合在一起再转换成一个十进制数的话,答案就是1032291340。转换方法很简单,就是数制的按权展开:12×2560+132×2561+135×2562+61×2563=12+33792+8847360+1023410176=1032291340(基数为256,即28)。

明白了这个道理,大家再回头看看刚才例子中的“www.Trojan.com.cn/HuiGeZi_Server.exe”。如果说这种字母域名还会露出一截狐狸尾巴的话,那么当把它对应的IP地址(假设为“61.135.132.13”)换算成一个十进制数,结果是1032291341,再结合@标志过滤用户的解析,欺骗性就又上了一个台阶――Http://www.sohu.com@1032291341。此时,还会有多少人会怀疑这个URL不是搜狐呢?

防范:查源代码法防范URL欺骗

我URL欺骗的功夫还是有点厉害的(典型的自吹自擂),但是大家还是可以防范的。其实,对付这些利用我URL去欺骗引诱人上当的恶意网页,只须一个最简单的招数即可奏效,那就是查看网页的源代码。当然,这需要有一点儿网页代码阅读的能力。

假设有人发给你一个的URL地址――Http://www.…….com而事先你又不知道它是否为URL欺骗的话,只须在浏览器地址栏中输入“View-Source:Http://www.…….com”并回车,系统就会调用记事本来打开这个网页的源代码。接下来就是在其中搜索一下(可使用“编辑→查找”菜单)有没有像是Format或者有之类的危险编码。如果有的话当然要拒绝访问了。

篇8:百度关于链接url地址和nofollow属性的链接的处理

请帮忙代问一下:

我们知道,锚文本链接如果没有nofollow属性,搜索引擎会给于权重,站长们一般也通过这个方式进行推广,但是现在用锚文本链接推广越来越难,很多地方只支持发文本链接,

我想问的是:

1.文本链接url地址,百度是否会发现他是一个url地址并通过这个地址到相应的url地址上去抓取.

2.不带nofollow属性的链接,一般蜘蛛会认为他给于了这个地址以权重. 那么文本链接url地址,是否也会给于相应的url地址权重呢?

以上二个问题想从百度得到一个确定答案, 因为站长群里有很多说法,不知道哪个是真的.

答:

1.文本链接url地址,百度会发现他是一个url地址并通过这个地址到相应的url地址上去抓取

2.我们对链接是否应该传递权重,唯一的判断标准是:这个链接是否用户or对方网站真心推荐你的网站、这个推荐,是否对用户有价值,

百度关于文本链接url地址和nofollow属性的链接的处理

php面试题

php应聘个人简历

PHP聊天室技术

用于加密机制的协议是

用于加密机制的协议

下载如何加密url参数地址php(推荐8篇)
如何加密url参数地址php.doc
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档
点击下载本文文档