Domanda

Ho bisogno di una libreria di crittografia standard, fornita da Microsoft, che funzioni sia per .NET 2.0 che per C ++. Cosa suggeriresti?

Scopriamo che AES è offerto solo in .NET 3.5 (e disponibile in C ++)

Scopriamo che Rijndael è usato in .NET 2.0 ma non disponibile nelle librerie C ++ standard.

Se sbaglio (ottime possibilità), puoi indicarmi la giusta direzione?

Caso peggiore, suppongo di poter chiamare l'algoritmo Rijndael da .NET usando PInvoke ma preferirei avere una soluzione nativa.

È stato utile?

Soluzione

Abbiamo fatto con successo una cosa simile che spero possa aiutarti:

C ++ CryptoAPI

Provider .NET TripleDes

Note a margine

  • evitiamo CAPICOM come la peste poiché gli incubi di spiegamento che ne derivano non valgono la seccatura.
  • L'ordine dei byte sul lato .NET può entrare in gioco a volte. Ad esempio, per utilizzare una chiave generata sul lato C ++ (CryptoAPI), è necessario invertire l'array di byte prima di utilizzarlo in TripleDESCryptoServiceProvider.

Se desideri maggiori dettagli, lascia un commento e posso dare di più. Buona crittografia!

Altri suggerimenti

AES e Rijndael sono essenzialmente lo stesso algoritmo con una limitazione sulla dimensione del blocco e sulla modalità di cifratura. Quindi finché puoi vivere con restrizioni (che non sono onerose) puoi usarle in modo intercambiabile.

3DES è disponibile tramite Capicom. Vedi qui per informazioni.

Windows include una libreria di crittografia AES C / C ++, come parte di Fornitore di servizi crittografici AES . È adatto all'uso all'interno di applicazioni C / C ++ native.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top