PHP 使用openssl 進行加密 解密

來源:互聯網
上載者:User

標籤:運行   ref   file   cipher   title   targe   ssl   gen   echo   

linux下命令直接使用openssl命令產生公開金鑰和私密金鑰,參考openssl 命令如下
# 產生1024位RSA私匙,用3DES加密它,口令為123,# 輸出到檔案rsa_private_key.pem# openssl genrsa -out rsa_private_key.pem# 從檔案rsa_private_key.pem讀取私匙# 產生的公開金鑰匙輸出到檔案rsa_public_key.pem# openssl rsa -in rsa_private_key.pem -out rsa_public_key.pem# 用公開金鑰匙rsapublickey.pem加密檔案data.txt,# 輸出到檔案cipher.txt# openssl rsautl -encrypt -pubin -inkey rsa_public_key.pem -in data.txt -out cipher.txt# 使用私密金鑰匙rsa_private_key.pem解密密文cipher.txt,# 輸出到檔案data.txt# openssl rsautl -decrypt -inkey rsa_private_key.pem -in cipher.txt -out data.txt# 用私密金鑰匙rsaprivatekey.pem給檔案plain.txt簽名,# 輸出到檔案signature.bin# openssl rsautl -sign -inkey rsa_private_key.pem -in data.txt -out signature.bin# 用公開金鑰匙rsa_public_key.pem驗證簽名signature.bin,# 輸出到檔案plain.txt# openssl rsautl -verify -pubin -inkey rsa_public_key.pem -in signature.bin -out data

產生公開金鑰和私密金鑰檔案

# openssl genrsa -out rsa_private_key.pem# openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem

使用PHP讀取公開金鑰和私密金鑰對資料進行加密和解密

<?php$pub_file = file_get_contents(‘rsa_public_key.pem‘);echo "讀取公開金鑰檔案\n:$pub_file\n";    $pub_key = openssl_get_publickey($pub_file);    var_dump($pub_key);        $encrypt_result = openssl_public_encrypt(‘yangxunwu‘, $encrypted, $pub_key);        if($encrypt_result){        echo "\n加密資料成功\n".json_encode($encrypted)."\n";        }else{        die("\n加密資料失敗".openssl_error_string()."\n");        }        $pri_file = file_get_contents(‘rsa_private_key.pem‘);        echo "讀取私密金鑰檔案\n$pri_file\n";        $pri_key = openssl_get_privatekey($pri_file);        var_dump($pri_key);                $decrypt_result = openssl_private_decrypt($encrypted, $decrypted, $pri_key);        if($decrypt_result){        echo "\n解密資料成功\n".$decrypted."\n";        }else{        die("\n解密資料失敗".openssl_error_string()."\n");                }

運行:

http://man.linuxde.net/openssl

PHP 使用openssl 進行加密 解密

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.