ich diesen öffentlichen RSA-Schlüssel haben:PHP openssl_public_encrypt „Schlüsselparameter kein gültiger Schlüssel ist“
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtixUGzGpLXgZ7AV1HfmIHV/FEF+fww77FekRc2oLhUOd4HitwCPo76fjtdsQBEt8w9HZ3CXVphaAU2BA6MEZJ3ShVMsdAXb2ZA1C+lu7k1GV9M/BhucTg35HujSK647Sc5MwVLwFsN80dAnGsZF8gwb2TNUzXHwzbAb30T01zuqf8RCM75OwKZFYqzu7FOVrtk/w9mh92MOXG0l7WSqNIctu8Kxka/tEJJIA5nqMGNMocjwprXy66NS7FFy1GY+NnxfFLtODqq0tllc50UCDsnqSvNmj2wcnAcsCzNOoxPPgp7t8S+sQvOzgc5W3CDjIsYEiGD+vzSVNkGiRou577wIDAQAB
(Jede andere Schlüssel Ich versuche, gibt den gleichen Fehler, auch)
und diese Zeichenfolge:
$str = "VOTE\n" .
"server-list\n" .
"$user\n" .
"$userip\n" .
time()."\n";
ich benutze diesen Code die Zeichenfolge genau 256 Bytes werden zu lassen, so dass sie den Standard für diese spezielle Anwendung folgt:
$leftover = (256 - strlen($str))/2;
while ($leftover > 0) {
$str .= "\x0";
$leftover--;
}
den Schlüssel zu formatieren, ich dies tun:
$key = wordwrap($key, 65, "\n", true);
$key = <<<EOF
-----BEGIN PUBLIC KEY-----
$key
-----END PUBLIC KEY-----
EOF;
Wenn ich openssl_public_encrypt($str, $encrypted, $key);
bekomme ich die folgende Warnung:
Warning: openssl_public_encrypt() function.openssl-public-encrypt: key parameter is not a valid public key in ...
Ich bin nicht sicher, warum dies geschieht. Dies ist, was der Schlüssel aussieht, wenn ich es echo:
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtixUGzGpLXgZ7AV1HfmIH
V/FEF
fww77FekRc2oLhUOd4HitwCPo76fjtdsQBEt8w9HZ3CXVphaAU2BA6MEZJ3ShVMsd
AXb2ZA1C
lu7k1GV9M/BhucTg35HujSK647Sc5MwVLwFsN80dAnGsZF8gwb2TNUzXHwzbAb30T
01zuqf8RCM75OwKZFYqzu7FOVrtk/w9mh92MOXG0l7WSqNIctu8Kxka/tEJJIA5nq
MGNMocjwprXy66NS7FFy1GY
NnxfFLtODqq0tllc50UCDsnqSvNmj2wcnAcsCzNOoxPPgp7t8S
sQvOzgc5W3CDjIsYEiGD vzSVNkGiRou577wIDAQAB
-----END PUBLIC KEY-----
Jede mögliche Hilfe würde geschätzt!
Edit: Ein Arbeitsschlüssel soll wie folgt aussehen:
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmHzD76i8DA25nC+Qsswi
OM0lW+gViiQD4tEm7suxBc2BGibtdlrsprVIId92hSjQKx4x8+XVWU6k89T5vy8Y
txpXN759OWdGkDi8uvZuYclMjW9Rao+oqSvbXH37R7oSY287I+6uOHclGhniQN3q
RyoXBkbhDk0/FTI/i549q/gGk1UZYv449KLrDOqmtohRcIyAYVnvvWtD1kIzourq
hMtEIrPqwoBqTaUA9kOIXw1jMovao2TN52j48KgOg9KjqtdwUwD9e6n7hJd/subF
6woc8L7zjJFOHH5gacUC7vtiMpBpnSyLQpjFLepYYwftjsRmg4xLdh+Zvgw3xqi4
lwIDAQAB
-----END PUBLIC KEY-----
Was ist mit den '+' Zeichen in Ihrem Schlüssel passiert? Sie sind in dem formatierten Block verschwunden. – sarnold
Hmm .. Ich bin mir nicht sicher. Und ich weiß wirklich nicht, ob sie da sein sollen, weil ich ehrlich gesagt nicht weiß, was ich mache. Ich versuche, mit dem Protokoll davon zu arbeiten: https://github.com/vexsoftware/votifier – fruitcup
Die + Zeichen stellen Bytes so viel wie alle anderen Zeichen dar. Die Base64-Codierung verwendet 'A-Ba-b0-9' und'/'&' + 'zum Codieren von Bytes und möglicherweise das Zeichen' = 'zum Auffüllen des letzten Teils. –