<?php/*** 使用
openssl
實現非對稱加密**
@since
2015-11-10
*/header
('content-type:text/html;charset=utf-8');
classrsa
$this
->
_keypath
= $path;}
/***
建立公鑰和私鑰**/
public functioncreatekey()
/***
設定私鑰**/
public functionsetupprivkey()
$file
= $this
->
_keypath
.directory_separator
.'priv.key';
$privkey
= file_get_contents
($file
);$this
->
_privkey=
openssl_pkey_get_private
($privkey
);return true;
}/**
* 設定公鑰**/
public functionsetuppubkey()
$file
= $this
->
_keypath
.directory_separator
.'pub.key';
$pubkey
= file_get_contents
($file
);$this
->
_pubkey=
openssl_pkey_get_public
($pubkey
);return true;
}/**
* 用私鑰加密**/
public functionprivencrypt(
$data
)$this
->setupprivkey();
$result
= openssl_private_encrypt
($data
, $encrypted
, $this
->
_privkey);
if(
$result
)return null;
}/**
* 私鑰解密**/
public functionprivdecrypt(
$encrypted
)$this
->setupprivkey();
$encrypted
= base64_decode
($encrypted
);$result
= openssl_private_decrypt
($encrypted
, $decrypted
, $this
->
_privkey);
if(
$result
)return null;
}/**
* 公鑰加密**/
public functionpubencrypt(
$data
)$this
->setuppubkey();
$result
= openssl_public_encrypt
($data
, $encrypted
, $this
->
_pubkey);
if(
$result
)return null;
}/**
* 公鑰解密**/
public functionpubdecrypt(
$crypted
)$this
->setuppubkey();
$crypted
= base64_decode
($crypted
);$result
= openssl_public_decrypt
($crypted
, $decrypted
, $this
->
_pubkey);
if(
$result
)return null;
}/**
* __destruct**/
public function__destruct()
}$rsa
=newrsa(
'e:\phptudy\apache');
//$rsa->createkey();die;
//私鑰加密,公鑰解密
echo"待加密資料:segmentfault.com\n";
$pre
= $rsa
->privencrypt(
"segmentfault.com");
echo"加密後的密文:\n".
$pre
."\n";
$pud
= $rsa
->pubdecrypt(
$pre
);echo"解密後資料:".
$pud
."\n";
//公鑰加密,私鑰解密
/*echo "
待加密資料:
segmentfault.com\n";
$pue = $rsa->pubencrypt("segmentfault.com");
echo "
加密後的密文
:\n" . $pue . "\n";
$prd = $rsa->privdecrypt($pue);
echo "
解密後資料
:" . $prd;*/
?>
php使用openssl來實現非對稱加密
使用非對稱加密主要是借助openssl的公鑰和私鑰,用公鑰加密私鑰解密,或者私鑰加密公鑰解密。1.安裝openssl和php的openssl擴充套件 2.生成私鑰 openssl genrsa 用於生成rsa私鑰檔案,生成是可以指定私鑰長度和密碼保護 plain view plain copy op...
php使用openssl來實現非對稱加密
使用非對稱加密主要是借助openssl的公鑰和私鑰,用公鑰加密私鑰解密,或者私鑰加密公鑰解密。1.安裝openssl和php的openssl擴充套件 2.生成私鑰 openssl genrsa 用於生成rsa私鑰檔案,生成是可以指定私鑰長度和密碼保護 openssl genrsa out rsa p...
php使用openssl來實現非對稱加密
使用非對稱加密主要是借助openssl的公鑰和私鑰,用公鑰加密私鑰解密,或者私鑰加密公鑰解密。1.安裝openssl和php的openssl擴充套件 2.生成私鑰 openssl genrsa 用於生成rsa私鑰檔案,生成是可以指定私鑰長度和密碼保護 openssl genrsa out rsa p...