我正在使用openssl 0.9.6g,并且已经使用RSA_generate_key()创建了公共/私有密钥对。当我用保存密钥时PEM_write_bio_RSAPublicKey,它为我提供了如下密钥:-----BEGIN RSA PUBLIC KEY-----...-----END RSA PUBLIC KEY-----我在.NET中有另一个模块,由于其格式,在传递此键时会引发异常。它采用如下格式:-----BEGIN PUBLIC KEY-----...-----END PUBLIC KEY-----如何将我的密钥转换为这种格式。我正在使用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-----工作正常。我一直在寻找这个问题。我认为我正在寻找的是“如何将rsa公钥从pkcs#1转换为x509格式。
1 回答
- 1 回答
- 0 关注
- 442 浏览
添加回答
举报
0/150
提交
取消