我正在寻找两个在概念上类似于这些的功能:
// 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 );
wherestring
可以是 a char*
, astd::string
或可以轻松转换为这两者的东西。并且基本上可以是任何东西,从使用某些命令(gpg/ssl 等)生成的键,到使用其他public_key
简单功能生成的键。private_key
我研究了一些密码学库(libgcrypt、libgpgme、openssl ...),但用这些库实现这些功能看起来并不容易:它们需要关于非对称加密的非肤浅知识和很多的代码。
无论如何,这项任务似乎并不罕见。如何实现上面的两个功能?