2012-04-28 1 views
3

En bref, j'utilise DES et je crypte un mot de passe en utilisant RSA pour l'échange de clés, le mot de passe ne dépasse pas 16 caractères le problème est lorsque je crypte la clé, la taille cryptée devient trop grand pour moi de déchiffrer voici mon Crypter rsa et déchiffrer le code:Impossible de déchiffrer la clé chiffrée par RSA

Crypter: - J'ai essayé la localpwd comme « asd »

byte[] plaintext = utf8.GetBytes(localpwd); 
    byte[] ciphertext = rsaservice.Encrypt(plaintext, false); 
    string cipherresult = Convert.ToBase64String(ciphertext); 

alors j'imprimer la clé chiffrée sur la zone de texte et essayez de décrypter

byte[] ciphertext = utf8.GetBytes(filetest.Text); 
    byte[] plain = rsaservice.Decrypt(ciphertext, true); 
    string plaintext = utf8.GetString(plain); 

je reçois "les données à déchiffrer dépassent le maximum pour ce module de 256 octets". J'ai essayé d'augmenter la taille de la clé pour être en mesure de crypter et décrypter les grandes tailles de clés, mais en augmentant la clé augmente simplement la taille des données cryptées résultant de la même erreur s'il vous plaît aider !!!

+5

Je ne vois pas l'inverse de 'ToBase64String()' –

+0

J'utilise l'encodage UTF8 pour obtenir convertir en octets nad en chaînes de caractères à nouveau –

Répondre

5
//byte[] ciphertext = utf8.GetBytes(filetest.Text); 
    byte[] ciphertext = Convert.FromBase64String(filetest.Text); 
+0

WOW jamais pensé que ce serait aussi simple que cela, vous avez monsieur juste sauvé ma vie: D merci –

+0

est-ce que je peux utiliser unicode? J'essaie d'envoyer sur un flux de réseau et je ne peux pas le faire pour les chaînes Base64 –

+0

Toutes les chaînes peuvent être codées en Unicode .... Cela ne devrait pas importer ici. –

Questions connexes