将公钥存储在变量php

时间:2016-03-03 22:08:30

标签: php openssl coding-style public-key

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

$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-----";

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

如何处理断线和缩进?

1 个答案:

答案 0 :(得分:0)

使用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';

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

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

<?php
  return 'yourkey';
?>

然后你可以把它存储在var中:

$var = include 'key.php';

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