㈠ 百度的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;
?>