使用openssl實現非對稱加密

2021-07-27 03:51:10 字數 4010 閱讀 1936

<?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...