php密碼編譯演算法小結

來源:互聯網
上載者:User

標籤:php加密

<?php

#密碼編譯演算法

header(‘content-type:text/html;charset=utf-8;‘);

$password=‘hugehugehuge‘;

$pwd=‘hugehuge‘;

//MD5加密,單向密碼編譯演算法,兩個參數,1必寫,要加密的字串,

//2第二個參數是bool值,為真, MD5 報文摘要將以16位元組長度的原始二進位格式返回。返回32位字串

echo ‘md5預設調用:<BR>‘;

echo md5($password);

echo "<BR>";

echo ‘md5配置第二個參數調用:<BR>‘;

echo md5($password,true);


//cryp,單向密碼編譯演算法,兩個參數,1.參數要加密的明文,它也只使用該明文的開始 8 個字元

//2。加密的幹擾串,預設是兩位,如果不寫,則由系統隨機產生兩位字元,也叫做鹽值或密鑰。

echo ‘<br>‘;

echo ‘<hr>‘;

echo "CRYPT密碼編譯演算法<BR>";

echo crypt($password);

echo ‘<br>‘;

echo crypt($password,‘hu‘);

if(CRYPT_STD_DES){//CRYPTDES標準演算法

echo ‘<br>標準演算法,只取兩位字串作為幹擾串‘;

echo ‘<br>‘;

echo crypt($password,‘this is a test‘);

echo ‘<br>pwd:‘;

echo crypt($pwd,‘this is a test‘);

echo ‘看兩個結果是否一樣<br>‘;

}

if(CRYPT_MD5){//md5加密

echo ‘<br>md5密碼編譯演算法,第二個參數以$1$開頭,以$結尾,最多12位作為幹擾串包括$1$‘;

echo "<br>";

echo crypt($password,‘$1$hellohellohello$‘);

echo "<br>pwd:";

echo crypt($pwd,‘$1$hellohellohello$‘);

}


//sha1密碼編譯演算法,返回40位長度的字串,單向密碼編譯演算法

echo ‘<hr>sha1預設調用:<BR>‘;

echo sha1($password);

echo "<BR>";

echo ‘md5配置第二個參數調用:<BR>‘;

echo sha1($password,true);


//url加密和解密

//urlencode,傳入字串中除了-_.之外的所有非字母數字字串都將

//被替換成百分比符號(%)後跟兩位16進位數,空格則編碼為加號(+)

echo ‘<hr>url加密和解密<br>‘;

$url1=‘this is a url‘;

echo urlencode($url1);

echo ‘<br>‘;

$url2=‘www.qdweb.com?username=2+3%4 huge &king # or \1=1‘;

echo urlencode($url2);

/*

常用的轉換

?變成 %3F

=變成 %3D

空格 變成 +

% 變成 %25

& 變成 %26

\ 變成 %5C

+ 變成 %2B

*/

echo ‘<br>urldecode的一個用處:合并參數,<br>‘;

if(!empty($_GET)){

print_r($_GET);

}

echo ‘<br>‘;

$url3=‘http://www.qdweb.com/jiami.php?username=huge&age=24‘;

echo ‘<a href="‘.$url3.‘">urldecode合并參數</a>‘;


$baidu=‘http://www.baidu.com/s?wd=%E6%85%95%E8%AF%BE%E7%BD%91%20immoc&ie=utf-8&tn=baiduhome_pg&f=8&rsv_bp=1&rsv_spt=1&rsv_sug3=6&rsv_sug4=109&rsv_sug1=3&rsv_n=2&inputT=8408&rsv_sug=1&bs=immoc%20%20%E6%85%95%E8%AF%BE%E7%BD%91‘;

echo ‘<br>‘;

echo ‘rawurlencode:‘;

//按照RFC1738進行編碼,將空格轉換20%,其他同上

echo rawurlencode($url2);

#解碼

$url=‘this is a test!‘;

$enurl=urlencode($url);

echo ‘<br>urlencode編碼後:‘.$enurl;

$deurl=urldecode($enurl);

echo ‘<br>urlencode解碼後:‘.$deurl;

#解碼

$url=‘this is a test!‘;

$enurl=rawurlencode($url);

echo ‘<br>rawurlencode編碼後:‘.$enurl;

$deurl=rawurldecode($enurl);

echo ‘<br>rawurlencode反編碼後:‘.$deurl;

//urldecode也可以將20%解碼成空格

$deurl=urldecode($enurl);

echo ‘<br>urlencode解碼rawurlencode編碼後的字串:‘.$deurl;


//base64_encode(),使用base64對傳入字串進行編碼

//一般用在郵件中,對二進位圖片進行編碼

$data=‘虎哥是男神!!‘;

echo ‘<hr>base64_encode加密後:‘;

$endata=base64_encode($data);

echo $endata;

//base64_decode(data,bool strict),對使用MIME base64編碼的資料進行解碼

//如果輸入的資料超出了base64字母表,則返回false

echo ‘<br>base64_decode解密後:‘;

echo base64_decode($endata);









?>


本文出自 “虎哥的部落格” 部落格,請務必保留此出處http://7613577.blog.51cto.com/7603577/1531691

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.