我正在使用这部分代码
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 Ҩ xvU| > ˢ=W ő \克
可以消除 符号??
答案 0 :(得分:5)
字符串打印效果不好,因为它是二进制数据,而不是文本。它并不意味着人类可读。
使二进制数据文本友好的常用方法是 base64 encode 。 Base64编码将二进制数据转换为ASCII字符串。编码的文本仍然不是人类可读的,所以当你打印它时它仍然看起来像gobbledygook,但它至少在眼睛上很容易,很容易粘贴到文本文件中,很容易电子邮件。
有关在C中执行base64编码/解码的方法,请参阅this Stack Overflow question。