我对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‡AIAA)‾ {û³òÌ+ A =Gô\M¾GrXt^ EI·AOE-¶¹HÝû×L5ÆÙJ~”ÄWºÚú9t/ O:ÛÑÇÙ¨Bpþq/,OEO·@¿Ë™¾^ 7 [ ºqom...ójR* n“nÇ®Nx«ïÈøkW2”9L«RÇÇôZ& ãÞò¾rAO“Íj+¥`~û°rÌÿ5Ô!”¿W
如何将输出作为ASCII字符串MD5(但长度超过32),例如: 87f0ea083c7a03bb89aec910 ........
我认为不可读的字符可以转换为字节数组,然后将其转换为字符串,但我如何在PHP中执行此操作?
感谢。
答案 0 :(得分:0)
问题解决了。只需使用函数bin2hex()。
感谢stackoverflow,当我输入问题时,它显示了另一个与建议类似的线程,非常棒!!