Algoritmo / libreria di crittografia per .NET 2.0 + C ++
-
11-07-2019 - |
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.
Soluzione
Abbiamo fatto con successo una cosa simile che spero possa aiutarti:
C ++ CryptoAPI
- CryptoAPI è puro Win32 (c / c ++), nativo di tutti i sistemi operativi Microsoft.
- Utilizza Provider di crittografia avanzato (< codice> MS_ENHANCED_PROV )
- Usa Triple DES (
Algoritmo CALG_3DES )
Provider .NET TripleDes
- Utilizza TripleDESCryptoServiceProvider sul lato .NET.
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.