首先,我在過去幾天中搜索了這個問題,但是我發現的一切都不起作用。我沒有收到運行時錯誤,但是當我輸入程序生成的相同密鑰(以十六進制字符串的形式)進行加密時,解密失敗(但在整個程序中使用生成的密鑰工作正常)。我試圖輸入一個十六進制字符串(格式:00:00:00 ...)並將其變成一個32字節的字節數組。輸入來自getpass()
。我之前在Java和C#中完成了這個工作,但我是C++的新手,一切看起來都複雜得多。任何幫助將不勝感激:)另外,我在Linux平臺上編程,所以我想避免僅Windows功能。C++十六進制字符串到字節數組
這裏是什麼,我已經試過一個例子:
char *pass = getpass("Key: ");
std::stringstream converter;
std::istringstream ss(pass);
std::vector<byte> bytes;
std::string word;
while(ss >> word)
{
byte temp;
converter << std::hex << word;
converter >> temp;
bytes.push_back(temp);
}
byte* keyBytes = &bytes[0];
謝謝,這是有幫助的,但我無法訪問輸出爲字節[],因爲解密方法輸入參數非常具體。 –
對不起,我不確定是什麼問題。你可以再詳細一點嗎? –
我需要傳遞字節的方法看起來像'SetKey(const byte * key)'(http://www.cryptopp.com/docs/ref/class_simple_keying_interface.html#adf3c29b3ef3af74788a58c7c49887fd7) –