C 使用openssl在标准输出RSA加密文本上打印

C 使用openssl在标准输出RSA加密文本上打印,c,unix,openssl,rsa,C,Unix,Openssl,Rsa,我正在使用这部分代码 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��

我正在使用这部分代码

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.�Ҩ�似曾相识|�>�ˢ=W�ő�� �\��g


有可能消除� 符号???

字符串无法很好地打印,因为它是二进制数据,而不是文本。它不适合人类阅读

使二进制数据文本友好的一种常见方法是它。Base64编码将二进制数据转换为ASCII字符字符串。编码后的文本仍然不是人类可读的,因此在打印时它仍然看起来像gobbledygook,但它至少看起来很容易,易于粘贴到文本文件中,易于发送电子邮件


请参阅,了解C中base64编码/解码的方法。

密码文本不应该是人类可读的。在UTF-8这样的文本编码中,甚至不能作为字符理解。当然,您可以消除未知字符符号。但要做到这一点,您首先必须确定:打印它是为了实现什么?我会打印它只是想看看我加密东西时会发生什么,一种可视化日志