UWP'de Windows.Security.Cryptography.Core
kullanmayı denediğimde, genel anahtarı AsymmetricKeyAlgorithmProvider
'dan almayla ilgili bir hata alıyorum. Her birleşimi başarıya ulaşmadan denedim. Giriş dizgisini her zaman UTF8 modunda olmasını kontrol ettim.UWP [Evrensel pencere platformu] RSA AsimetrikKeyAlgorithmProvider alma genel anahtarı
try {
var bytes = Encoding.UTF8.GetBytes(publicKeyString);
publicKeyString = Encoding.UTF8.GetString(bytes);
Debug.WriteLine(publicKeyString);
IBuffer keyBuffer = CryptographicBuffer.DecodeFromBase64String(publicKeyString);
byte[] bytes = Convert.FromBase64String(publicKeyString);
string hex = "2D2D2D2D2D424547494E205055424C4943204B45592D2D2D2D2D0A4D494942496A414E42676B71686B6947397730424151454641414F43415138414D49494243674B434151454172336767514744726E5645562B786A4F484F2B390A4B72595541547166756935666F364D65736E53466C6B797937482F4775327135667273724B305246383933507A584F664371414A6753534D58673330793463720A594E3742617838467979314C58744E2B5A35576B43436D644F597438704F636D7A75494D6A636E4E733063486B767859576B336658516D513255535A685063700A51595761382F4469392B344462745464587A643263346F717A4E4A4A4A4B66437A647731796E72776F4A755A4245563547747363396F48782F6D7231725434420A386F377635473553706D543368687661396762617034436C4231745677434B584F41636A2F71782F49416A505A35566E4B7A363669325534706A6F43764A79590A564E53497A3557346276726A6E622B76775848626B506D62316E6655503864526D33683767644F314D7330766B72715A4567714746416953343475686974576B0A65514944415141420A2D2D2D2D2D454E44205055424C4943204B45592D2D2D2D2D0A";
Debug.WriteLine(hex);
AsymmetricKeyAlgorithmProvider provider = AsymmetricKeyAlgorithmProvider.OpenAlgorithm(AsymmetricAlgorithmNames.RsaPkcs1);
CryptographicKey publicKey = provider.ImportPublicKey(CryptographicBuffer.DecodeFromHexString(hex), CryptographicPublicKeyBlobType.BCryptPublicKey);
IBuffer dataBuffer = CryptographicBuffer.CreateFromByteArray(Encoding.UTF8.GetBytes(plainText));
var encryptedData = CryptographicEngine.Encrypt(publicKey, dataBuffer, null);
return CryptographicBuffer.EncodeToBase64String(encryptedData);
}
catch (Exception e)
{
throw;
return "Error in Encryption:With RSA ";
}
hex' 'de deşifre metni' X.509' biçiminde bir kamu anahtarıdır. X509SubjectPublicKeyInfo'yu ikinci parametre olarak geçmeyi deneyebilirsiniz, ancak bu işlevlerin ikili veya metin biçiminden beklediğinden emin değilim. –
Ben hex ve base64string kodlama denedim ve her ikisi de X.509 ve üzerinde başarısız olur. ANS1 hatası alıyorum, aynı zamanda BcryptPublicKey ile Pkcs1RsaPublicKey kullanırken bu hatayı aldım her şey yolunda ama ben bir istisna 0x0900001 böyle bir şey olsun ve sadece herhangi bir düşünce başarısız olur? –