Question

Je veux créer 2 vraiment simples dll:

1) qui signera un document xml 2) qui se chargera été modifié le document xml hasnt.

J'ai essayé d'utiliser la RSACryptoServiceProvider et un conteneur de clé. Mais quand je passe à une autre machine ne fonctionne pas ce que la clé est stockée dans la machine.

Je veux stocker la clé dans les dll im la création (je sais que ce n'est pas reccomended) mais je ne peux pas travailler sur la façon d'écrire du code pour signer simplement un document XML et vérifiez qu'il n'a pas été modifié.

Alors, dois-je utiliser clé symétrique pour faire ce que je veux est-ce possible?

Pete

Était-ce utile?

La solution

Vous mentionnez déjà les problèmes de stockage de la clé privée dans la dll, donc je ne vais pas le répéter.

Pour ce faire:

Sur votre propre machine exécuter ce code:

var key = new RSACryptoServiceProvider(2048);
string publicKey = key.ToXmlString(false);
string privateKey = key.ToXmlString(true);
Console.WriteLine(publicKey);
Console.WriteLine(privateKey);

sorties deux lignes (longues). Copiez les dans votre code:

Signe:

var privateKey = new RSACryptoServiceProvider();
privateKey.FromXmlString(/* insert the private-key XML string here */ );
privateKey.SignData(/*...*/);

Vérifier:

var publicKey = new RSACryptoServiceProvider();
publicKey.FromXmlString(/* insert the public-key XML string here */ );
publicKey.VerifyData(/*...*/);

Autres conseils

S'il est sur le point de vérifier que votre document XML n'a pas été modifié simple somme de contrôle MD5 (ou tout autre algorithme de hachage) serait plus facile à mettre en œuvre et est ce que vous avez besoin. Il serait également verifyable sur des machines différentes.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top