如何对密文进行十六进制编码



我有一个关于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然后结果充满了不可读的字符,例如:

String crypted: ^«ƒ ̧GÖÕaR³žØc íû›&x©bŒsÌ̉R+\,Ιlãq4 ̈1/4Œ8' ̃pcšM ̧¹"ŽμÀ;›1¬''ác®;³•ç›¤À0Ž3/4Ne@»ÿ¡ ̄æ'^b‡ãIAÂ) ̄{û³òÌ+A=Gô\M3/4GrXt^Ëï·âOE-¶¹HÝû×L5ÆÙJ ̃"ÄWºÚú9t/Ó:ÛÑÇÙ ̈Bpþq/,Œo·@¿e™3/4^7[º qom...ójR*ˆn"nÇ®Nx«ïÈøkW2"9L«RÇÇôZ& ãÞò3/4rAO "Íj+¥'~û°rÌÿ5Ô!"¿W

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

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

谢谢。

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

感谢您的堆栈溢出,当我输入问题时,它向我显示了另一个类似的线程作为建议,太棒了!

最新更新