2016-09-28 3 views
0

C# 프로젝트에서 RSA Cryptography를 사용하여 서비스에 생태 데이터를 보내야합니다. 서비스는 저에게이 같은 공개 키를 주었다RSA 공개 키 공개 키 C#

-----BEGIN PUBLIC KEY----- 
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAjU/bq6YZD2H0DUhbtEBg 
JIyiurM8eX3aH02/ZWr6VZ27WF93ylWC4cGAe50sSgiA8NCW0G/UL77kAkebJQrJ 
jVdt7SvDypSPk1mXNK0i9cI9DrdmAHLGLlYJx7eeY6h4JShLhOBnKRghi0S4uL5N 
L7W4OUgCeUlGWcmz8ssNEQ5w17rfUF9TxYEFVKFMGN/SSaYNUr4znGt2r97YPsPy 
0Sk4dGHhMXr1QGR05UQeVuU43OuRAFxA71YbuCRUYg5ENwKM/1RnNcu8v7kXFA4L 
qGV9AncHLIZEOqWgY+4balVXlKIcMVN6W+PXKJpowOyB9QIq1Ec3OMaJ3sGpOppx 
KQIDAQAB 
-----END PUBLIC KEY----- 

어떻게 내가이 코드를 사용하여 base64로 문자열로 변환 할 수 있습니다 ?

public static string EncryptData(string publicKey, string clearText) 
{ 
    IBuffer keyBuffer = CryptographicBuffer.DecodeFromBase64String(publicKey); 
    AsymmetricKeyAlgorithmProvider asym = AsymmetricKeyAlgorithmProvider.OpenAlgorithm(AsymmetricAlgorithmNames.RsaPkcs1); 
    CryptographicKey key = asym.ImportPublicKey(keyBuffer, CryptographicPublicKeyBlobType.Capi1PublicKey); 
    IBuffer plainBuffer = CryptographicBuffer.ConvertStringToBinary(clearText, BinaryStringEncoding.Utf8); 
    IBuffer encryptedBuffer = CryptographicEngine.Encrypt(key, plainBuffer, null); 
    byte[] encryptedBytes; 
    CryptographicBuffer.CopyToByteArray(encryptedBuffer, out encryptedBytes); 
    return Convert.ToBase64String(encryptedBytes); 
} 
+0

의 사용 가능한 복제 [C#/.NET 암호화 : RSA 서명을 확인하기 위해 공개 키 Base64로 인코딩을 사용 (HTTP를 : //stackoverflow.com/questions/9283716/c-sharp-net-crypto-using-base64-encoded-public-key-to-verify-rsa-signature) –

답변

0

나는 그것이 쉬운 솔루션이었다 발견 : 은 내가 사용해야합니다

CryptographicKey key = asym.ImportPublicKey(keyBuffer, CryptographicPublicKeyBlobType.X509SubjectPublicKeyInfo);