php求因子,PHP自定义带加密因子的加密方法

现在PHP加密的方法有很多总,一般简单的加密方法都是直接MD5的,但是MD5一些简单的密码也可以通过反编译出来,所以我们现在通过自定义的方法来加密更为安全一些。

现在是本人收集和汇总一些PHP加密方法的方法,分享给大家,供大家参考。

方法一:/**

* 对用户的密码进行加密

* @param $password

* @param $encrypt //传入加密串,在修改密码时做认证

* @return array/password

*/

function password($password, $encrypt='') {

$pwd = array();

$pwd['encrypt'] = $encrypt ? $encrypt : rand(1000,9999);

$pwd['password'] = md5(md5(trim($password)).$pwd['encrypt']);

return $encrypt ? $pwd['password'] : $pwd;

}

方法说明:当我们只传入密码是,方法会返回一个加密因子和一个新生成的加密密码;而这个加密因子和密码都是随机生成的,每次一次都不一样。

方法二:/*

* rc4加密算法

* $pwd 密钥

* $data 要加密的数据

*/

//$pwd密钥 $data需加密字符串

function rc4 ($pwd, $data){

$key[] ="";

$box[] ="";

$pwd_length = strlen($pwd);

$data_length = strlen($data);

for ($i = 0; $i < 256; $i++){

$key[$i] = ord($pwd[$i % $pwd_length]);

$box[$i] = $i;

}

for ($j = $i = 0; $i < 256; $i++) {

$j = ($j + $box[$i] + $key[$i]) % 256;

$tmp = $box[$i];

$box[$i] = $box[$j];

$box[$j] = $tmp;

}

for ($a = $j = $i = 0; $i < $data_length; $i++) {

$a = ($a + 1) % 256;

$j = ($j + $box[$a]) % 256;

$tmp = $box[$a];

$box[$a] = $box[$j];

$box[$j] = $tmp;

$k = $box[(($box[$a] + $box[$j]) % 256)];

$cipher .= chr(ord($data[$i]) ^ $k);

}

return $cipher;

}

方法三:/**

+-----------------------------------------------------

* Mcrypt 加密/解密

* @param String $date 要加密和解密的数据

* @param String $mode encode 默认为加密/decode 为解密

* @return String

* @author zxing@97md.net Mon Sep 14 22:59:28 CST 2009

+-----------------------------------------------------

* @example

*/

function ZxingCrypt($date,$mode = 'encode'){

$key = md5('zxing');//用MD5哈希生成一个密钥,注意加密和解密的密钥必须统一

if ($mode == 'decode'){

$date = base64_decode($date);

}

if (function_exists('mcrypt_create_iv')){

$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);

$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);

}

if (isset($iv) && $mode == 'encode'){

$passcrypt = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $date, MCRYPT_MODE_ECB, $iv);

}elseif (isset($iv) && $mode == 'decode'){

$passcrypt = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $date, MCRYPT_MODE_ECB, $iv);

}

if ($mode == 'encode'){

$passcrypt = base64_encode($passcrypt);

}

return $passcrypt;

}

相关标签:php

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值