Error occurred while decoding OAEP padding

后端 未结 8 1333
青春惊慌失措
青春惊慌失措 2020-12-06 09:45

While decrypting text using RSACryptoServiceProvider.Decrypt, I am getting the error:

Error occurred while decoding OAEP padding.

8条回答
  •  星月不相逢
    2020-12-06 10:29

    I ran into this exact problem. UnicodeEncoding.GetBytes is not always the inverse of UnicodeEncoding.GetString.

    byte[] a = new byte[32];
    
    RandomNumberGenerator gen = new RNGCryptoServiceProvider();
    gen.GetBytes(a);
    
    UnicodeEncoding byteConverter = new UnicodeEncoding();
    
    byte[] b = byteConverter.GetBytes(byteConverter.GetString(a));
    
    //byte array 'a' and byte array 'b' will not always contain the same elements.
    

    This is why RSACryptoServiceProvider.Decrypt fails. A lot of encrypt/decrypt examples on the web use Unicode encoding. Do not use Unicode encoding. Use Convert.FromBase64String and Convert.ToBase64String instead.

提交回复
热议问题