PHP 加密和解密

2022-08-20 06:18:14 字數 2212 閱讀 6004

計應134(實驗班) 鄭壽奎

一、crypt()函式單向加密

語法格式:

string crypt(string str[, string salt]);

引數str是需要加密的值,salt是干擾串,如果把salt省略就會隨機生成乙個干擾串

設定干擾串和不設定干擾串的區別:

設定干擾串之後的值是一直不會變的

不設定干擾串之後的值是隨機的,每一次都不一樣

**如下:

<?php 

$str="這是個值";

echo '加密前的值:'.$str."

";$jiami=crypt($str

);echo '沒有干擾串加密後的值:'.$jiami."

";$jia=crypt($str,"ab");

echo '新增干擾串"ab"加密後的值:'.$jia."

";?>

第一次執行結果如下圖:

第二次執行結果如下圖:

crypt()函式加密是單向加密的,如果不加干擾串,那麼每次加密的結果都是不一樣的,但是加了干擾串之後可以發現,每次的值都是一樣的。

所以對加密後的資料進行判斷就需要在加密之前加上干擾串         

二、md5()函式加密

語法格式:

string md5(string str[, bool raw_output]);

引數str是需要加密的資料,raw_output的值是true和false,預設為false,如果為true的是後,那麼函式就會返回乙個二進位制形式的密文

md5()函式加密的密文是一直不會變的

**:

<?php 

$str="這是個值";

echo '加密前的值:'.$str."

";$jiami=md5($str

);echo '預設加密後的值:'.$jiami."

";$jiami=md5($str,true

);echo 'true加密後的值:'.$jiami."

";?>

執行結果如下圖:

三、sha1()函式加密

語法格式:

string sha1(string str[, bool raw_output]);

引數str是需要加密的資料,raw_output預設false,函式返回乙個40位的十六進製制數,true 返回20的二進位制數

sha1()函式加密後的密文是不會變的

**:

<?php 

$str="這是個值";

echo '加密前的值:'.$str."

";$jiami=sha1($str

);echo '預設加密後的值:'.$jiami."

";$jiami=sha1($str,true

);echo 'true加密後的值:'.$jiami."

";?>

執行結果如下圖:

四、加密和解密

**:

<?php 

//加密

function encode($string = '', $skey = 'cxphp')

//解密

function decode($string = '', $skey = 'cxphp')

$str = '四大古典風格';

echo "string : " . $str . "

";echo "encode : " . ($enstring = encode($str)) . '

';echo "decode : " . decode($enstring

);?>

執行結果如下圖:

php加密和解密

function randabc length filename index.php 要加密的檔案 t k1 randabc 隨機密匙1 t k2 randabc 隨機密匙2 vstr file get contents filename v1 base64 encode vstr c strtr ...

加密和解密

public class desc public static string decode string data catch descryptoserviceprovider cryptoprovider new descryptoserviceprovider memorystream ms n...

加密和解密

公鑰密碼體制的核心思想是 加密和解密採用不同的金鑰。這是公鑰密碼體制和傳統對稱密碼體制的最大區別。對於傳統對稱密碼而言,密文的安全性完全依賴於金鑰的保密性,一旦金鑰洩露,將毫無保密性可言。但是公鑰密碼體制徹底改變了這樣狀況,在公鑰密碼體制中,公鑰是公開的,只有私鑰是保密的,知道公鑰和密碼演算法要推測...