我之前使用.NET的RSA实现没有任何问题,但现在我需要在Windows Mobile 6上进行一些解密。通常我使用FromXmlString
加载密钥,但因为那不是紧凑的框架我试过这种方式。变量PublicKeyMod
和PublicKeyExponent
是我在FromXLMString
中使用的XML中的Modulus和Exponent中的字符串。 Decrypt抛出异常“Unknown Error'80007005'”。知道为什么吗?
Using stream_reader As New StreamReader(application_path + "\Mobile.lic")
Dim enc_bytes(CInt(stream_reader.BaseStream.Length - 1)) As Byte
stream_reader.BaseStream.Read(enc_bytes, 0, CInt(stream_reader.BaseStream.Length))
Using rsa_provider = New RSACryptoServiceProvider()
Dim rsa_params As New RSAParameters()
rsa_params.Modulus = System.Convert.FromBase64String(PublicKeyMod)
rsa_params.Exponent = System.Convert.FromBase64String(PublicKeyExponent)
rsa_provider.ImportParameters(rsa_params)
Dim dec_bytes = rsa_provider.Decrypt(enc_bytes, False)
Dim expiration_date As Date = New Date(System.BitConverter.ToInt64(dec_bytes, 0))
End Using
End Using