【问题标题】:store public key in variable php将公钥存储在变量php中
【发布时间】:2016-06-17 11:30:07
【问题描述】:

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

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

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

如何处理断线和缩进?

【问题讨论】:

  • 什么意思“处理”???
  • 我已经编辑了我的帖子,请查看我想要的最终结果
  • 好的,按照你在第二个例子中的方式做。
  • 是的,但是在执行时,它会失败,因为密钥不再有效,因为带有缩进的空格
  • 您可能还需要 \n 来处理每一行 OpenSSL 的 PEM 解析器是蹩脚的,没有它们就会失败 (IIRC)。跨度>

标签: php openssl coding-style public-key


【解决方案1】:

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

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

【讨论】:

  • 好的,我试试。我不能使用 file_get_contents() ^^
  • file_get_contents() 添加了另一种方式。然而,通常只有外部 url 被阻止。不是此函数的内部文件。
  • 无法使用您的第二个选项。我会将密钥作为常量存储在我的班级中
猜你喜欢
  • 1970-01-01
  • 2021-06-22
  • 2014-03-24
  • 1970-01-01
  • 2011-08-20
  • 2017-07-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多