ホームページ  >  記事  >  バックエンド開発  >  PHP rsa 暗号化と復号化の使用方法_PHP チュートリアル

PHP rsa 暗号化と復号化の使用方法_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 09:55:57965ブラウズ

PHP rsa暗号化と復号化の使い方

PHP rsa暗号化と復号化の使い方

この記事では、主に PHP rsa 暗号化と復号化の使用法を紹介します。この記事では、公開鍵と秘密鍵の生成と、生成された公開鍵と秘密鍵を PHP での暗号化と復号化に使用する例について説明します。それ

PHP サーバーがクライアントと対話してオープン API を提供する場合、通常、API データ送信の機密部分を暗号化する必要があります。このとき、rsa 非対称暗号化の使用方法を示す例が役に立ちます。 PHPでデータの暗号化と復号化を実現します

1. 暗号化と復号化の最初のステップは、公開鍵と秘密鍵のペアを生成することです。秘密鍵で暗号化されたコンテンツは、公開鍵で復号化できます (逆も同様です)。

オープンソース RSA キー生成ツール openssl (通常、Linux システムにはこのプログラムが付属しています) をダウンロードし、別のフォルダーに解凍して、bin ディレクトリに入り、次のコマンドを実行します。

?

1

最初のコマンドは元の RSA 秘密鍵ファイル rsa_private_key.pem を生成し、2 番目のコマンドは元の RSA 秘密鍵を pkcs8 形式に変換し、3 番目のコマンドは RSA 公開鍵 rsa_public_key.pem を生成します

上記のことから、秘密鍵を介して対応する公開鍵を生成できることがわかるので、サーバー側では秘密鍵private_key.pemを使用し、公開鍵はandroidやiosなどのフロントエンドに配布されます。

2. 生成された公開鍵と秘密鍵をphpでの暗号化と復号に使用し、コードを直接アップロードします

?

2

3

openssl genrsa -out rsa_private_key.pem 1024

openssl pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt -out private_key.pem

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

$private_key = '-----RSA 秘密キーを開始-----

MIICXQIBAAKBgQC3//sR2tXw0wrC2DySx8vNGlqt3Y7ldU9+LBLI6e1KS5lfc5jl

TGF7KBTSkCHBM3ouEHWqp1ZJ85iJe59aF5gIB2klBd6h4wrbbHA2XE1sq21ykja/

Gqx7/IRia3zQfxGv/qEkyGOx+XALVoOlZqDwh76o2n1vP1D+tD3amHsK7QIDAQAB

AoGBAKH14bMitESqD4PYwODWmy7rrrvyFPEnJJTECLjvKB7IkrVxVDkp1XiJnGKH

2h5syHQ5qslPSGYJ1M/XkDnGINwaLVHVD3BoKKgKg1bZn7ao5pXT+herqxaVwWs6

ga63yVSIC8jcODxiuvxJnUMQRLaqoF6aUb/2VWc2T5MDmxLhAkEA3pwGpvXgLiWL

3h7QLYZLrLrbFRuRN4CYl4UYaAKokkAvZly04Glle8ycgOc2DzL4eiL4l/+x/gaq

deJU/chHLRQJBANOZY0mEoVkwhU4bScSdnfM6usQowYBEwHYYh/OTv1a3SqcCE1f+

qbAclCqeNiHajCcDmgYJ53LfIgyv0wCS54kCQAXaPkaHclRkQlAdqUV5IWYyJ25f

oiq+Y8SgCCs73qixrU1YpJy9yKA/meG9smsl4Oh9IOIGI+zUygh9YdSmEq0CQQC2

4G3IP2G3lNDRdZIm5NZ7PfnmyRabxk/UgVUWdk47IwTZHFkdhxKfC8QepUhBsAHL

QjifGXY4eJKUBm3FpDGJAkAFwUxYssiJjvrHwnHFbg0rFkvvY63OSmnRxiL4X6EY

yI9lblCsyfpl25l7l5zmJrAHn45zAiOoBrWqpM5edu7c

-----RSA 秘密鍵を終了-----';

$public_key = '-----公開鍵の開始-----

MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC3//sR2tXw0wrC2DySx8vNGlqt

3Y7ldU9+LBLI6e1KS5lfc5jlTGF7KBTskCHBM3ouEHWqp1ZJ85iJe59aF5gIB2kl

Bd6h4wrbbHA2XE1sq21ykja/Gqx7/IRia3zQfxGv/qEkyGOx+XALVoOlZqDwh76o

2n1vP1D+tD3amHsK7QIDAQAB

-----公開キーを終了-----';

//エコー $private_key;

$pi_key = openssl_pkey_get_private($private_key);//この関数は、秘密キーが利用可能かどうかを判断するために使用でき、リソース ID Resource id を返すことができます

$pu_key = openssl_pkey_get_public($public_key);//この関数は、公開鍵が利用可能かどうかを判断するために使用できます

print_r($pi_key);エコー "n";

print_r($pu_key);エコー "n";

$data = "aassssasssddd";//元のデータ

$暗号化 = "";

$復号化 = "";

echo "ソースデータ:",$data,"n";

echo "秘密鍵暗号化:n";

openssl_private_encrypt($data,$encrypted,$pi_key);//秘密鍵暗号化

$encrypted =base64_encode($encrypted);//暗号化されたコンテンツには通常、特殊文字が含まれており、ネットワーク間で URL を介して送信する場合は、base64 エンコードが URL 安全かどうかに注意してください

echo $encrypted,"n";

echo "公開鍵復号化:n";

openssl_public_decrypt(base64_decode($encrypted),$decrypted,$pu_key);//秘密鍵で暗号化されたコンテンツは公開鍵で復号化できます

echo $decrypted,"n";

エコー「--------------------------------------n」;

echo "公開鍵暗号化:n";

openssl_public_encrypt($data,$encrypted,$pu_key);//公開鍵暗号化

$encrypted =base64_encode($encrypted);

echo $encrypted,"n";

echo "秘密鍵の復号化:n";

openssl_private_decrypt(base64_decode($encrypted),$decrypted,$pi_key);//秘密鍵の復号化

echo $decrypted,"n";

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/990990.html技術記事 PHP rsa暗号化・復号化の使い方 PHP rsa暗号化・復号化の使い方 この記事では、PHP rsa暗号化・復号化の使い方を中心に紹介しています この記事では、PHPで使用される公開鍵、秘密鍵、および生成された鍵の生成方法について説明します。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。