我正在使用 CryptoPP 对字符串“abc”进行编码,问题是编码的 base64 字符串总是有一个尾随 '0x0a'?这是我的代码:
#include <iostream>
#include <string>
using namespace std;
#include "crypto/base64.h"
using namespace CryptoPP;
int main() {
string in("abc");
string encoded;
CryptoPP::StringSource ss(
in,
true,
new CryptoPP::Base64Encoder(
new CryptoPP::StringSink(encoded)
)
);
cout << encoded.length() << endl;// outputs 5, should be 4
cout << encoded;
}
字符串 "abc" 应该被编码为 "YWJj",但结果是 YWJj\n, (\n == 0x0a),长度是 5 。
更改源字符串没有帮助,任何字符串都将使用尾随 \n 加密,这是为什么呢?谢谢