-1

私はコードのこの部分を使用しています

char encrypted_text[1024];
RSA_public_encrypt(sizeof(message), message, encrypted_text, rsa, RSA_PKCS1_OAEP_PADDING);
printf("encrypted text: %s\n", encrypted_text);

optput は次のようなものです。

�v0��뷾��s�E�Z��N\����6~��:�&���� /����~ͯ���L��d�Ǡ�� E��[�h�U.vH2F1Qb^)�g� ,a�ڨ�x vU|�>�ˢ=W�ő�� �\��g

�記号を削除することは可能ですか??

4

1 に答える 1

5

文字列はテキストではなくバイナリ データであるため、うまく印刷されません。人間が読めるようにするためのものではありません。

バイナリ データをテキストに適したものにする一般的な方法は、base64 でエンコードすることです。Base64 エンコーディングは、バイナリ データを ASCII 文字列に変換します。エンコードされたテキストはまだ人間が読めるものではないので、印刷するとまだごちゃごちゃしたように見えますが、少なくとも目に優しく、テキスト ファイルに貼り付けやすく、電子メールで簡単にやり取りできます。

C で base64 エンコード/デコードを行う方法については、このスタック オーバーフローの質問を参照してください。

于 2012-08-18T16:19:10.033 に答える