Ich versuche, eine Datei mit RSA
zu verschlüsseln, aber es haben nicht die toXmlString()
und fromXmlString
Methode. Wie verwendet man RSA
Klasse in. Net-Core? Und ich möchte mit privaten Schlüssel verschlüsseln und entschlüsseln mit öffentlichen Schlüssel, so dass andere nur diese Datei lesen können, aber diese Datei nicht generieren können, ist das möglich?Wie verwende ich RSA in .net Core
Antwort
Während die ToXmlString
und FromXmlString
Methoden nicht verfügbar sind, ImportParameters(RSAParameters)
und ExportParameters(bool)
sind.
Wenn Sie im XML-Format Werte vorhandenen haben, die Sie benötigen, um weiterhin das XML-Format des Schlüssels zu lesen, ist nicht sehr interessant:
Öffentliche nur:
<RSAKeyValue>
<Modulus>[base64-encoded value]</Modulus>
<Exponent>[base64-encoded value]</Exponent>
</RSAKeyValue>
öffentliche + Privates:
<RSAKeyValue>
<Modulus>[base64-encoded value]</Modulus>
<Exponent>[base64-encoded value]</Exponent>
<P>[base64-encoded value]</P>
<Q>[base64-encoded value]</Q>
<DP>[base64-encoded value]</DP>
<DQ>[base64-encoded value]</DQ>
<InverseQ>[base64-encoded value]</InverseQ>
</RSAKeyValue>
(wobei jedes XML benannte Element in das Feld auf der RSAParameters
Struktur mit dem gleichen Namen abbildet)
Andernfalls können/sollten Sie den für Sie und Ihre Anwendung am besten geeigneten Serialisierungsmechanismus verwenden.
Ich erstelle meine eigenen 'ToXMlString' und' FromXmlString' mit 'ExportParameters' und' ImportParameters', es funktioniert gut, aber das kann nicht priviate Schlüssel zu verschlüsseln und öffentlicher Schlüssel zu entschlüsseln, irgendwelche Vorschläge? – John
@John Ein privater Schlüssel kann verschlüsseln, da er öffentlich ist, aber ein öffentlicher Schlüssel nicht entschlüsseln kann. Die Verwendung des privaten Schlüssels zum Nachweis der Authentizität wird Signieren genannt, also möchten Sie vielleicht SignData und VerifyData, im Gegensatz zu Encrypt and Decrypt. – bartonjs
Vielleicht merkt man, dass ich eine Lizenzdatei schreiben möchte, dass diese Lizenz eine verschlüsselte XML-Datei (binary formate) enthält, die einige notwendige Informationen enthält. Meine Anwendung benötigt diese Informationen zum Starten und etwas tun. Also muss ich das wirklich verschlüsseln und entschlüsseln, momentan benutze ich AES um diese Datei zu verschlüsseln, aber wenn jemand meine Anwendung dekompiliert, wird er den AES Schlüssel bekommen, so dass er einfach jede gewünschte Lizenz generieren kann. – John
Aktuell Sie weniger bekommen, wenn reinen .net Kern mit:
Am Ende bedeutet dies, Sie auf .NET-Core heute aufbauen können, und erwarten mehr Funktionen später leuchten, so werden die Dinge einfacher bekommen als Zeit geht weiter. Egal, ob Sie ein Early Adopter seine mit den weniger funktions Rahmen jetzt, oder Sprung in später, wenn mehr Funktionen haben hinzugefügt und das Dritte Öko-System gefangen sein werden, ein (hart) Entscheidung, die wir alle selbst treffen müssen.
Sie sind verfügbar, wenn Sie das vollständige .net-Framework in .net core anvisieren.
{
"version": "1.0.0-*",
"dependencies": {
"NETStandard.Library": "1.6.0"
},
"frameworks": {
"net461": {}
}
}
Sie werden nicht mit zum Beispiel zur Verfügung:
"frameworks": {
"netcoreapp1.0": {
"imports": [
"dotnet5.6",
"portable-net45+win8"
]
}
},
Können Sie die anderen verfügbaren Methoden nicht verwenden? – svick
Alle Beispiele, die ich online finde, verwenden alle die Methode 'fromXmlString'. Kannst du mir einen anderen Weg zeigen? – John
Sie können eine Erweiterung wie diese verwenden: https://gist.github.com/Jargon64/5b172c452827e15b21882f1d76a94be4/ –