㈠ 百度的url是怎么加密的
php有mcrypt库,但是本人用下来很烂,加密在解密字符串会多出很多原来没有的字符,而且总是乱码,差不多只有sha1是比较好用的
用哈希加密非常简单
Location('music.php?url='.sha1($_GET['url']));
但是相比php,javascript的加密技术就更厉害了,我有sha1,md5和blowfish的三种加密函数,这些都是比较常用的算法!
㈡ 请高人看下这个php的加密算法,帮我分析一下:
先获取$salt把$salt 用base64_encode()编码转换一下,再用“+”替换“.”,然后用substr()截取0-22位,最后用crypt()函数混合加密密码和上述转换后的$salt,大致这个过程吧
㈢ SHA-256 加密 php 有相关的函数吗
用hash函数。
hash('sha256','加密文本');
㈣ php MD5的定义用法
The md5() function calculates the MD5 hash of a string.
md5()函数的作用是:计算字符串的MD5 hash。
The md5() function uses the RSA Data Security, Inc. MD5 Message-Digest Algorithm.
md5()函数使用美国实验室(以研究加密算法而着名)数据安全加密。它采用MD5信息散列[Message-Digest]运算法则
From RFC 1321 - The MD5 Message-Digest Algorithm: The MD5 message-digest algorithm takes as input a message of arbitrary length and proces as output a 128-bit fingerprint or message digest of the input. The MD5 algorithm is intended for digital signature applications, where a large file must be compressed in a secure manner before being encrypted with a private (secret) key under a public-key cryptosystem such as RSA.
RFC1321的解释 - MD5信息散列[Message-Digest]运算法则:“MD5信息散列运算法则将任意长度的信息作为输入值,并将其换算成一个128位长度的“指纹信息”或“信息散列”值来代表这个输入值,并以换算后的值作为结果。MD5运算法则主要是为“数字签名程序”而设计的;在这个“数字签名程序“中,较大的文件将在加密(这里的加密过程是通过在一个密码系统下[如:RSA]的公开密匙下设置私要密匙而完成的)之前以一种安全的方式进行压缩。”
This function returns the calculated MD5 hash on success, or FALSE on failure.
如果函数执行成功将计算MD5 hash,如果失败返回false。
㈤ php hash_hmac如何解密
hmac算法的主体还是散列函数,散列算法本身是抽取数据特征,是不可逆的。
所以“再得到aaa”——“逆运算获得原数据”这种想法,是不符合hmac设计初衷,可以看成是对hmac安全性的直接挑战,属于解密,属于误用。
类似的需求,应该使用AES加密算法实现
㈥ php aes加密~呢
AES加密算法
密码学中的高级加密标准(AdvancedEncryptionStandard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。
<?php
classCryptAES
{
protected$cipher=MCRYPT_RIJNDAEL_128;
protected$mode=MCRYPT_MODE_ECB;
protected$pad_method=NULL;
protected$secret_key='';
protected$iv='';
publicfunctionset_cipher($cipher)
{
$this->cipher=$cipher;
}
publicfunctionset_mode($mode)
{
$this->mode=$mode;
}
publicfunctionset_iv($iv)
{
$this->iv=$iv;
}
publicfunctionset_key($key)
{
$this->secret_key=$key;
}
publicfunctionrequire_pkcs5()
{
$this->pad_method='pkcs5';
}
protectedfunctionpad_or_unpad($str,$ext)
{
if(is_null($this->pad_method))
{
return$str;
}
else
{
$func_name=__CLASS__.'::'.$this->pad_method.'_'.$ext.'pad';
if(is_callable($func_name))
{
$size=mcrypt_get_block_size($this->cipher,$this->mode);
returncall_user_func($func_name,$str,$size);
}
}
return$str;
}
protectedfunctionpad($str)
{
return$this->pad_or_unpad($str,'');
}
protectedfunctionunpad($str)
{
return$this->pad_or_unpad($str,'un');
}
publicfunctionencrypt($str)
{
$str=$this->pad($str);
$td=mcrypt_mole_open($this->cipher,'',$this->mode,'');
if(empty($this->iv))
{
$iv=@mcrypt_create_iv(mcrypt_enc_get_iv_size($td),MCRYPT_RAND);
}
else
{
$iv=$this->iv;
}
mcrypt_generic_init($td,hex2bin($this->secret_key),$iv);
$cyper_text=mcrypt_generic($td,$str);
$rt=strtoupper(bin2hex($cyper_text));
mcrypt_generic_deinit($td);
mcrypt_mole_close($td);
return$rt;
}
publicfunctiondecrypt($str){
$td=mcrypt_mole_open($this->cipher,'',$this->mode,'');
if(empty($this->iv))
{
$iv=@mcrypt_create_iv(mcrypt_enc_get_iv_size($td),MCRYPT_RAND);
}
else
{
$iv=$this->iv;
}
mcrypt_generic_init($td,$this->secret_key,$iv);
//$decrypted_text=mdecrypt_generic($td,self::hex2bin($str));
$decrypted_text=mdecrypt_generic($td,base64_decode($str));
$rt=$decrypted_text;
mcrypt_generic_deinit($td);
mcrypt_mole_close($td);
return$this->unpad($rt);
}
publicstaticfunctionhex2bin($hexdata){
$bindata='';
$length=strlen($hexdata);
for($i=0;$i<$length;$i+=2)
{
$bindata.=chr(hexdec(substr($hexdata,$i,2)));
}
return$bindata;
}
publicstaticfunctionpkcs5_pad($text,$blocksize)
{
$pad=$blocksize-(strlen($text)%$blocksize);
return$text.str_repeat(chr($pad),$pad);
}
publicstaticfunctionpkcs5_unpad($text)
{
$pad=ord($text{strlen($text)-1});
if($pad>strlen($text))returnfalse;
if(strspn($text,chr($pad),strlen($text)-$pad)!=$pad)returnfalse;
returnsubstr($text,0,-1*$pad);
}
}
//密钥
$keyStr='';
//加密的字符串
$plainText='test';
$aes=newCryptAES();
$aes->set_key($keyStr);
$aes->require_pkcs5();
$encText=$aes->encrypt($plainText);
echo$encText;
?>