中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

rsa加密如何在C++中實現

c++
小樊
92
2024-07-12 15:01:31
欄目: 編程語言

在C++中實現RSA加密需要使用第三方庫,比如OpenSSL或Crypto++. 這里我給出一個使用Crypto++庫實現RSA加密的示例代碼:

#include <iostream>
#include <string>
#include <cryptopp/rsa.h>
#include <cryptopp/osrng.h>
#include <cryptopp/base64.h>

using namespace CryptoPP;

std::string rsaEncrypt(const std::string& msg, const RSA::PublicKey& key) {
    std::string encrypted;
    RSAES_OAEP_SHA_Encryptor encryptor(key);
    
    StringSource(msg, true, new PK_EncryptorFilter(rng, encryptor, new StringSink(encrypted)));
    
    return encrypted;
}

int main() {
    AutoSeededRandomPool rng;
    
    // 生成RSA密鑰對
    RSA::PrivateKey privateKey;
    RSA::PublicKey publicKey;
    privateKey.GenerateRandomWithKeySize(rng, 2048);
    privateKey.MakePublicKey(publicKey);
    
    // 待加密的明文
    std::string msg = "Hello, world!";
    
    // 使用公鑰加密明文
    std::string encrypted = rsaEncrypt(msg, publicKey);
    
    std::cout << "Encrypted message: " << encrypted << std::endl;
    
    return 0;
}

在上面的代碼中,我們使用Crypto++庫提供的RSAES_OAEP_SHA_Encryptor類進行RSA加密,使用PK_EncryptorFilter類進行過濾加密數據。首先生成RSA密鑰對,然后使用公鑰加密明文。最后輸出加密后的數據。

0
黑水县| 阳信县| 郎溪县| 恩平市| 察雅县| 分宜县| 明光市| 凉城县| 保山市| 诏安县| 格尔木市| 温泉县| 封丘县| 塘沽区| 星子县| 定边县| 衢州市| 厦门市| 佛学| 高青县| 潮州市| 勐海县| 旬邑县| 武宣县| 肥乡县| 东明县| 酒泉市| 紫阳县| 自治县| 苍梧县| 正阳县| 黄浦区| 囊谦县| 沈丘县| 深州市| 潞西市| 枞阳县| 共和县| 高淳县| 灵川县| 靖远县|