Tôi đang tìm hai hàm khái niệm tương tự như thế này:C/C++ mã hóa/giải mã với khóa công khai
// 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);
nơi string
có thể là một char*
, một cái gì đó std::string
hoặc dễ dàng chuyển đổi thành hai. Và trong đó, public_key
và private_key
về cơ bản có thể là bất cứ điều gì, từ các phím được tạo bằng một số lệnh (công cụ gpg/ssl hoặc bất kỳ thứ gì), cho các phím được tạo bằng các hàm đơn giản khác.
Tôi đã xem xét một vài thư viện mã hóa (libgcrypt, libgpgme, openssl ...), nhưng không dễ dàng để thực hiện các chức năng như vậy với các thư viện đó: chúng yêu cầu kiến thức không hời hợt về bất đối xứng mã hóa và rất nhiều mã.
Dù sao tác vụ này có vẻ không phổ biến. Làm cách nào để triển khai hai chức năng trên?
Bạn đã xem Keyczar chưa? http://code.google.com/p/keyczar/ –
encrypted_text có lẽ là dữ liệu nhị phân. Bạn cần phải xem ra cho số không được nhúng. Tôi muốn bao gồm độ dài trong các nguyên mẫu ... – pmg
@pmg: Tôi nhận ra có một [c] -tag, nhưng tôi cho rằng peoro đang nghĩ đến 'std :: string' của C++, đó là 8-bit sạch sẽ và bao gồm một chiều dài , tách biệt với nội dung của chuỗi. –