将公钥存储在变量 PHP 中


store public key in variable php

>我有一个公钥,我想将其作为字符串存储在变量中,例如:

$public_key = "-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDH82E/Dn37torKz/vhAkpji9ZS
HCyfM7JuXCbh70F75Zh2/rEVvz38yNf6f01DNXiSpzO5eTmoXD7Blsb635AOjYbl
X/WljpFbwQ2QUUDlNDAslrqXYlMzht2MCq/pjtGgk0zJx6i+HjFyV7mebeePQY/x
NOzMpmy/Ke3u+SSHRwIDAQAB
-----END PUBLIC KEY-----";

我想要这样的东西

$public_key = "-----BEGIN PUBLIC KEY-----
              MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDH82E/Dn37torKz/vhAkpji9ZS
              HCyfM7JuXCbh70F75Zh2/rEVvz38yNf6f01DNXiSpzO5eTmoXD7Blsb635AOjYbl
              X/WljpFbwQ2QUUDlNDAslrqXYlMzht2MCq/pjtGgk0zJx6i+HjFyV7mebeePQY/x
              NOzMpmy/Ke3u+SSHRwIDAQAB
              -----END PUBLIC KEY-----";

目前,它失败了,因为键不再有效,因为带有缩进的空格

如何处理换行符和缩进?

使用 heredoc 语句对齐键。

$str = <<<'KEY'
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDH82E/Dn37torKz/vhAkpji9ZS
HCyfM7JuXCbh70F75Zh2/rEVvz38yNf6f01DNXiSpzO5eTmoXD7Blsb635AOjYbl
X/WljpFbwQ2QUUDlNDAslrqXYlMzht2MCq/pjtGgk0zJx6i+HjFyV7mebeePQY/x
NOzMpmy/Ke3u+SSHRwIDAQAB
KEY;

或连接字符串:

$str = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDH82E/Dn37torKz/vhAkpji9ZS'.
       'HCyfM7JuXCbh70F75Zh2/rEVvz38yNf6f01DNXiSpzO5eTmoXD7Blsb635AOjYbl'.
       'X/WljpFbwQ2QUUDlNDAslrqXYlMzht2MCq/pjtGgk0zJx6i+HjFyV7mebeePQY/x'.
       'NOzMpmy/Ke3u+SSHRwIDAQAB';

除此之外,使用函数删除其他符号,如换行符和空格,或者..将密钥存储在文件中,并使用chmod保护该文件file_get_contents()或将其存储在Web服务器的根目录之外。

或者,您可以创建一个类似 key.php 的文件:

<?php
  return 'yourkey';
?>

然后你可以像这样将其存储在变量中:

$var = include 'key.php';

这样,代码污染就被降到最低。