【发布时间】: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