c++ - 将 CryptoPP::Integer 转换为 LPCTSTR

标签 c++ windows integer crypto++

<分区>

我找不到将 CryptoPP::Integer(从 RSA key 生成)转换为 LPCTSTR(我想将 key 存储在注册表)。你能帮帮我吗?

谢谢!

最佳答案

... convert a CryptoPP::Integer (from a RSA key generation) to a LPCTSTR (I want to store the key in the registry). Could you help me ?

应该做类似下面的事情。 Integer 类重载 operator<< 中的 integer.h :

Integer n("0x0123456789012345678901234567890123456789");
ostringstream oss;    
oss << std::hex << n;

string str(oss.str());
LPCSTR ptr = str.c_str();

Integer 类在使用插入运算符时总是打印后缀。在上面的代码中,由于 h ,将附加 std::hex 。所以你可能想添加:

string str(oss.str());
str.erase(str.end() - 1);

另一种方法是使用 IntToString<Integer>() 中的函数 misc.h 。但是,它只适用于窄字符串,而不适用于宽字符串。

Integer n("0x0123456789012345678901234567890123456789");
string val = IntToString(n, 16)

IntToString 不打印后缀。但是,需要 hack 才能以大写形式打印字符串(如手册中所示)。

关于c++ - 将 CryptoPP::Integer 转换为 LPCTSTR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42351335/

相关文章:

c++ - 需要帮助让类(class)相互交流

c++ - C++模板-在类外部实现

windows - 如何从批处理文件中显示十六进制整数?

java - 关于从 JTextField 解析的整数的条件

c++ - 带有十六进制字符串的文件。需要格式化它以便我可以在程序中使用它

c++ - 使用/不使用内在函数填充 C++

c# - 在 Windows 8 中检测重启 - 未调用 SessionEnding

windows - Haskell 中的屏幕截图?

windows - 为什么 git稀疏 checkout 会导致 fatal error ?

java - 将单词的整数表示形式转换回字符串