使用非對稱加密主要是借助openssl的公鑰和私鑰,用公鑰加密私鑰解密,或者私鑰加密公鑰解密。
1.安裝openssl和php的openssl擴充套件
2.生成私鑰:openssl genrsa 用於生成rsa私鑰檔案,生成是可以指定私鑰長度和密碼保護
[plain]
view plain
copy
openssl genrsa -out rsa_private_key.pem 1024
3.生成公鑰:rsa命令用於處理rsa金鑰、格式轉換和列印資訊
[plain]
view plain
copy
openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
4.這裡我們使用私鑰加密,公鑰解密
[php]
view plain
copy
<?php
/**
* 金鑰檔案的路徑
*/$privatekeyfilepath
= 'rsa_private_key.pem'
;
/**
* 公鑰檔案的路徑
*/$publickeyfilepath
= 'rsa_public_key.pem'
;
extension_loaded
('openssl'
) or
die(
'php需要openssl擴充套件支援'
);
(file_exists
($privatekeyfilepath
) &&
file_exists
($publickeyfilepath
)) or
die(
'金鑰或者公鑰的檔案路徑不正確'
);
/**
* 生成resource型別的金鑰,如果金鑰檔案內容被破壞,openssl_pkey_get_private函式返回false
*/$privatekey
= openssl_pkey_get_private(
file_get_contents
($privatekeyfilepath
));
/**
* 生成resource型別的公鑰,如果公鑰檔案內容被破壞,openssl_pkey_get_public函式返回false
*/$publickey
= openssl_pkey_get_public(
file_get_contents
($publickeyfilepath
));
($privatekey
&& $publickey
) or
die(
'金鑰或者公鑰不可用'
);
/**
* 原資料
*/$originaldata
= '加密前hahahaha'
;
/**
* 加密以後的資料,用於在網路上傳輸
*/$encryptdata
= ''
;
echo
'原資料為:'
, $originaldata
, php_eol;
///用私鑰加密
if(openssl_private_encrypt(
$originaldata
, $encryptdata
, $privatekey
)) else
///用公鑰解密
/**
* 解密以後的資料
*/$decryptdata=''
;
if(openssl_public_decrypt(
$encryptdata
, $decryptdata
, $publickey
)) else
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...