我正在使用openssl 0.9.6g,并且已經(jīng)使用RSA_generate_key()創(chuàng)建了公共/私有密鑰對。當(dāng)我用保存密鑰時PEM_write_bio_RSAPublicKey,它為我提供了如下密鑰:-----BEGIN RSA PUBLIC KEY-----...-----END RSA PUBLIC KEY-----我在.NET中有另一個模塊,由于其格式,在傳遞此鍵時會引發(fā)異常。它采用如下格式:-----BEGIN PUBLIC KEY-----...-----END PUBLIC KEY-----如何將我的密鑰轉(zhuǎn)換為這種格式。我正在使用C ++。在.NET中,我使用的是openssl.net,代碼如下:string publicKey = @"-----BEGIN RSA PUBLIC KEY-----MIGJAoGBAKGtqUVBBqcGCRYa7Sb6JVQirOX3hggWP2k7CzEtbF/soOONK510KefmomXBrGn2t79ES+hAcCvGSiiVZGuEb3UPiznzbiY150SME5nRC+zU0vvdX64ni0MuDeUlGcxM1eWSpozO71at6mxLloEMUg0oSWHfAlS5a4LVaURrJqXfAgMBAAE=-----END RSA PUBLIC KEY-----";Encoding enc = Encoding.ASCII;string text = "hello world";byte[] msg = enc.GetBytes(text);CryptoKey key = CryptoKey.FromPublicKey(publicKey, "");RSA rsa = key.GetRSA();byte[] res = rsa.PublicEncrypt(msg, RSA.Padding.PKCS1);例外情況如下:CryptoKey key = CryptoKey.FromPublicKey(publicKey, "");如果我使用密鑰:-----BEGIN PUBLIC KEY-----MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCbhcU+fhYmYLESZQAj1hKBXsNYsi0kYHNkxpP7ftxZiTFowWUVXHzQgkcYiCNnp3pt1eG6Vt0WDzyFYXqUUqugvX41gkaIrKQw/sRiWEx49krcz7Vxr3dufL6Mg3eK7NyWDGsqwFrx/qVNqdhsHg12PGNxIMY4UBtxin2A8pd4OwIDAQAB-----END PUBLIC KEY-----工作正常。我一直在尋找這個問題。我認(rèn)為我正在尋找的是“如何將rsa公鑰從pkcs#1轉(zhuǎn)換為x509格式。
- 1 回答
- 0 關(guān)注
- 458 瀏覽
添加回答
舉報
0/150
提交
取消