解密我找兩個函數概念上類似於這些:C/C++加密/與公鑰
// returns the encrypted text
string encrypt(string public_key, string pass_phrase, string text);
// returns the original text
string decrypt(string private_key, string pass_phrase, string encrypted_text);
其中string
可能是char*
,一個std::string
什麼容易轉變爲這兩個。其中public_key
和private_key
基本上可以是任何東西,從使用某些命令(gpg/ssl或其他)生成的密鑰到使用其他簡單函數生成的密鑰。我已經研究了一些密碼學庫(libgcrypt,libgpgme,openssl ...),但它們看起來並不容易實現這些庫的功能:它們需要關於非對稱性的非表面知識加密和很多代碼。
無論如何,這個任務似乎並不少見。 如何實現上述兩個函數?
你有沒有簽出Keyczar? http://code.google.com/p/keyczar/ – 2010-11-08 13:32:05
encrypted_text可能是二進制數據。您需要注意嵌入的零。我會在原型中加入長度...... – pmg 2010-11-08 13:32:43
@pmg:我意識到有一個[c] - 標籤,但我想peoro是在考慮C++的std :: string,它是8位整潔的,包含一個長度,與字符串的內容分開。 – 2010-11-08 13:37:23