2013-07-01 33 views

回答

5

試試這個:

char* mKey="-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQCDT4ntP3Fqj73RQW32B6hCDHMG64GtxeQDZ5BcQnQSRB3S/EwM\ngpZwuGYwTb7E65pdAAQ0e5na2d7yIGZX4MoDRGaDbYgdxr49J430cVLRU1r9EW+O\nqZQERyGYefxWOqBaNZL2PBclS/qf+AxRh1WnD8aY5V5zNItgVV4Bv9w4YQIDAQAB\nAoGAMd6xaXNg5bG1y5Vn57q8wmjr/sLOu2qe0FQy1Xc/kfhgw1Kip1WpQSInXU0J\nmMxKEewBrNUMd7urGpYHiHSNA+QXiIp3qxGy7PrmZrPSrJImPxAE02YaUGDoh+6o\nZJc7xXCw2bwX8Fth8Duj2KNcIDuWuieybfzwTYKKJG3J04ECQQDxSa4gq/0SiiZ2\nc8YTn9wCTwqezmdI8SWsWXRnpXt1BhejokvLFbqpfQZ6m9LLYvpUsihZ2QkBXUl/\n1/uNu+aJAkEAi1Ey/7fjJJSJalNUgF3lKQdTqUlYI/9O9/98zPOcDmXcKlLNpf+f\nTV3nhK3vsewYqsx3Tu9bMKBVTE0dv+/NGQJAHfYyQyhYMpcpE4hozkMJhNffz7x9\notcfAHnTNJOd8vggs1cR5lP6a9V0moEC+fJ+d0nwLMgAkETPParKN91fUQJAEWMB\n3V4ir+cFu0pJCngtaFBsxXzMzjlHrrWo6p8gg798mZ+Z4LSlOe+VPD7E4kyXy4EX\nBrfihpAL9SjOpKyVyQJBAPD3E4Z7THZCQI/2u4eRXz3qbJAmPYLPTn/AxuX4VssW\n1WJAxZeCFHWL6+/84zoDWwzXN0xQFzO0ZspxxQNFqCI=\n-----END RSA PRIVATE KEY-----"; 


BIO* bo = BIO_new(BIO_s_mem()); 
BIO_write(bo, mKey,strlen(mKey)); 

EVP_PKEY* pkey = 0; 
PEM_read_bio_PrivateKey(bo, &pkey, 0, 0); 

BIO_free(bo); 


RSA* rsa = EVP_PKEY_get1_RSA(pkey); 
+0

我發現BIGNUM另一種方式,但感謝ü反正 –

+0

@XinKing可以請你寫你的過程中也? –

1

下面是代碼++擺脫串公鑰下,用openssl庫。

#include <openssl/bio.h> 
#include <openssl/rsa.h> 

const std::string RsaPublicKey = "-----BEGIN PUBLIC KEY---"; 
RSA* public_key_; 
IO* bo = BIO_new(BIO_s_mem()); 
BIO_write(bo, RsaPublicKey.c_str(),RsaPublicKey.length()); 
PEM_read_bio_RSA_PUBKEY(bo, &public_key_, 0, 0); 
BIO_free(bo); 
RSA_free(public_key_);