Ich habe ein Problem mit einem RSA-Schlüssel-Container auf Maschinenebene, wenn nur der öffentliche Schlüssel eines öffentlichen / privaten Schlüsselpaars gespeichert wird.
Der folgende Code erstellt ein öffentliches / privates Paar und extrahiert den öffentlichen Schlüssel aus diesem Paar. Das Paar und der öffentliche Schlüssel werden in separaten Schlüsselcontainern gespeichert. Die Schlüssel werden dann von jenen Schlüsselcontainern erhalten, an denen sie mit den Schlüsseln identisch sein sollten, die in die Container gehen.
Der Code funktioniert, wenn CspProviderFlags.UseDefaultKeyContainer
für CspParameters.Flags
angegeben ist (dh der Schlüssel, der aus dem Container PublicKey ausgelesen wird, ist derselbe), aber wenn CspProviderFlags.UseMachineKeyStore
für CspParameters.Flags
angegeben ist Der Schlüssel, der von PublicKey zurückgelesen wird, ist anders.
Warum unterscheidet sich das Verhalten und was muss ich anders tun, um den öffentlichen Schlüssel aus einem RSA-Schlüsselcontainer auf Maschinenebene abzurufen?
%Vor%Es scheint, dass Schlüsselcontainer nicht für diesen Zweck vorgesehen sind (dies wird durch "Gewusst wie: Speichern von asymmetrischen Schlüsseln in einem Schlüsselcontainer" im .NET Framework-Entwicklerhandbuch impliziert und von Diskusion auf MSDN ).
Um dieses Ziel zu erreichen, müssen andere Mechanismen wie das Speichern des Schlüssels in einer XML-Datei verwendet werden.
Dieser Link kann Ihnen helfen. Ссылка
%Vor%Das sagt es über das Löschen von Schlüsseln.
Tags und Links c# cryptography rsacryptoserviceprovider