Pregunta

He sido encargado de la implementación de una PKI de la biblioteca en C# para un proyecto de la empresa, y han sido incapaces de encontrar una buena ejecución de la misma.Parece que existen varias bibliotecas, y muchos rotos los enlaces que apuntan a las bibliotecas de MSDN que se han eliminado.He visto gente usando Crypt32.dll, personas de la creación de sus propias bibliotecas, la gente que usa P/Invoke acceder al sistema de almacenes de certificados, la gente la ampliación de la incorporada en las bibliotecas, los ejemplos que simplemente no se aplican a C# (por ejemplo,Ejemplos de Java), y librerías comerciales.

Mi pregunta es, que la aplicación/biblioteca es la más recomendada para simple de cifrado/descifrado de datos?

Como algunos antecedentes de lo que va a hacer con él, yo simplemente necesita para cifrar los mensajes utilizando una clave privada (.pfx), y descifrar claves públicas (.cer).Mensaje de firma y autenticación no es necesario en este nivel del proyecto, aunque puede ser en el futuro.He visto de referencia para el cifrado de las longitudes de que me inquieta.Tenemos que ser capaces de codificar toda la longitud del mensaje (dentro de lo razonable, por supuesto!).Es este, tengo algo para preocuparse, y si es así, ¿hay una manera de tratar con él?

Prefiero no de almacén de claves pública/privada en el windows el administrador de certificados, si es posible, pero si se hace la implementación mucho más simple, que así sea.

Me doy cuenta de la PKI y la encriptación es un tema vasto y complejo, pero estoy esperando un relativamente simple de la biblioteca de todos modos...(uno puede esperar, ¿verdad?)

Gracias!

¿Fue útil?

Solución

Bien, usted no mencionó que el incorporado en la clase, no cubre su necesidad, así que ¿cómo Sistema.De seguridad.La criptografía.RSACryptoServiceProvider?

Tiene un gran conjunto calificado formas asimétrico cifrar/descifrar los arroyos.

Hay varios tutoriales/guías para tomar a lo largo del camino:

http://www.codeproject.com/KB/security/RSACryptoPad.aspx

http://www.eggheadcafe.com/articles/20020630.asp

Hay un sinnúmero de más para ser encontrado a través de Google.

Actualización:Acerca de la duración-restrictments, que no debe de haber ningún problema si usted acaba de implementar el mismo buffer-algoritmo en ambos lados, el cifrado y el descifrado.

Update2:Sí, mi ejemplo fue RSACryptoProvider, pero usted puede usar cualquier clase que se deriva de Sistema.De seguridad.La criptografía.AsymmetricAlgorithm, si quieres una clave pública/privada-solución.O construir su propio...o tal vez no :)

Otros consejos

Sí, lo que está mal con construido-en las clases?

Y si usted no desea utilizar el almacén de certificados de Windows puedes usar algo como esto

RSACryptoServiceProvider rscp = new RSACryptoServiceProvider();
rscp.FromXmlString("<RSAKeyValue><Modulus>key data gere</Modulus><Exponent></Exponent></RSAKeyValue>");

No estoy seguro de que esta es una buena idea para las claves privadas, aunque.

Hay un buen tutorial sobre el tema aquí

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top