【问题标题】:How to hex encode ciphertext [duplicate]如何对密文进行十六进制编码[重复]
【发布时间】:2014-02-04 09:03:52
【问题描述】:

我对 PHP 中的函数 openssl_private_encrypt() 有疑问。 在编码之前,我有使用 OpenSSL 生成的有效私钥。 基于 php.net 中的一个论坛主题,我有以下代码:

$fp = fopen("D:\\myprivatekey.pem", "r");
$priv_key = fread($fp, 8192);
fclose($fp);
$res = openssl_get_privatekey($priv_key, 'mypassphrase');
openssl_private_encrypt('plaintext', $crypttext, $res);
echo "String crypted: $crypttext";

我已将文件 libeay32.dll 和 ssleay32.dll 从 C:\xampp\php 复制到 C:\xampp\apache\bin 然后结果充满了不可读的字符,例如:

字符串加密:^«ƒ¸GÖÕaR³žØc®íû›&x©bŒsÌ̉R+\,Ιlãq4¨¼Œ8´∼pcšM¸¹”޵À;›1¬',ác;³•盤À0޾Ne@»ÿ ¡¯æ´^b‡ãIAÂ)¯{û³òÌ+A=Gô\M¾GrXt^Ëï·âOE-¶¹HÝû×L5ÆÙJ~”ÄWºÚú9t/Ó:ÛÑÇÙ¨Bpþq/,Œo·@¿e™¾^7[º qom …ójR*ˆn„nÇ®Nx«ïÈøkW2„9L«RÇÇôZ& ãÞò¾rAO „Íj+¥`~û°rÌÿ5Ô!„¿W

如何将输出作为 ASCII 字符串 MD5 类似(但长度超过 32),例如: 87f0ea083c7a03bb89aec910 ........

我认为可以将不可读的字符转换为字节数组,然后将其转换为字符串,但是我如何在 PHP 中做到这一点?

谢谢。

【问题讨论】:

  • 是的,我已经意识到了,谢谢。我已经回答了我自己的问题。

标签: php encryption openssl private-key non-ascii-characters


【解决方案1】:

问题解决了。只需使用函数 bin2hex()。

感谢stackoverflow,当我输入问题时,它向我显示了另一个与建议类似的线程,太棒了!!

【讨论】:

  • 如果您自己发现了骗子,请不要发布问题。
猜你喜欢
  • 2018-02-22
  • 2016-07-19
  • 1970-01-01
  • 2016-04-17
  • 1970-01-01
  • 1970-01-01
  • 2013-06-10
  • 2019-11-22
  • 1970-01-01
相关资源
最近更新 更多