cryptage avec RSA sous visual C++
Citation:
Envoyé par nico-pyright(c)
c'est pas si compliqué que ca ...
le seul truc un peu délicat, c'est la génération des clés publiques et privées, si tu as besoin de les sauver
voila pour l'instant j'ai reussi à générer deux fichiers le premier pour la clé privé et l'autre pour la clé privé
mais reste les fonctions qui crypte et decrypte, voici mon code pour la fonction qui crypte
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
array<Byte>^ RSAEncrypt( array<Byte>^DataToEncrypt, RSAParameters RSAKeyInfo, bool DoOAEPPadding )
{
RSACryptoServiceProvider^ RSA = gcnew RSACryptoServiceProvider;
RSA->ImportParameters( RSAKeyInfo );
return RSA->Encrypt( DataToEncrypt, DoOAEPPadding );
}
int main(array<System::String ^> ^args)
{
FileStream ^fs = gcnew FileStream("c:\\test.txt", FileMode::Open);
BinaryReader ^br = gcnew BinaryReader(fs);
FileStream ^fsw = gcnew FileStream("c:\\test1.txt",FileMode::CreateNew);
BinaryWriter ^bw = gcnew BinaryWriter(fsw);
try
{
array<Byte>^dataToEncrypt = br->ReadBytes((int)fs->Length
array<Byte>^encryptedData;
array<Byte>^decryptedData;
RSACryptoServiceProvider^ RSA = gcnew RSACryptoServiceProvider;
encryptedData = RSAEncrypt( dataToEncrypt, RSA->ExportParameters( false ), false );
bw->Write(encryptedData);
}
catch ( Exception^ )
{
}
finally
{
br->Close();
fs->Close();
bw->Close();
fsw->Close();
}
}
return 0;
} |
il me genere un fichier vide :(
et je ne sais pas comment faire pour utiliser la clé génerée(sauvegardée)?
est ce que tu peux voir ce code et me dire ce qui ne va pas ?
merci
System.Security.Cryptography.CryptographicException
ce que je veux c'est crypter et decrypter des fichiers ..donc j'ai changé dans le main de ton code , de facon à ce que je puisse crypter le fichier "c:\\test.txt" en "c:\\test1.txt" et le decrypter après en "c:\\test2.txt"
mais il me genere une exception
"System.Security.Cryptography.CryptographicException"
voici le code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
int main(array<System::String ^> ^args)
{
FileStream ^fs = gcnew FileStream("c:\\test.txt", FileMode::Open);
BinaryReader ^br = gcnew BinaryReader(fs);
FileStream ^fsw = gcnew FileStream("c:\\test1.txt",FileMode::CreateNew);
BinaryWriter ^bw = gcnew BinaryWriter(fsw);
genererCle("pp", "p");
array<unsigned char> ^ encrypted =
encrypt("p", br->ReadBytes((int)fs->Length));
bw->Write(encrypted);
br->Close();
fs->Close();
bw->Close();
fsw->Close();
FileStream ^fs = gcnew FileStream("c:\\test1.txt", FileMode::Open);
BinaryReader ^br = gcnew BinaryReader(fs);
FileStream ^fsw = gcnew FileStream("c:\\test2.txt",FileMode::CreateNew);
BinaryWriter ^bw = gcnew BinaryWriter(fsw);
array<unsigned char> ^ decrypted = decrypt("pp", encrypted);
bw->Write(decrypted);
br->Close();
fs->Close();
bw->Close();
fsw->Close();
return0;
} |