Hey, ich habe mich gefragt, was die beste Technik wäre, um verschlüsselte Daten an einen Vertrag zu senden, die später entschlüsselt werden können, entweder vom ursprünglichen Benutzer oder vom Vertrag selbst, aber von niemand anderem.
Meine derzeit beste Vermutung ist, ein Schlüsselpaar mit CryptoJS/Forge zu erstellen und es mit dem öffentlichen Schlüssel zu verschlüsseln und dann den privaten Schlüssel sicher aufzubewahren, bis die Nachricht entschlüsselt werden kann. Ich vermute, dass der private Schlüssel sofort nach der Entschlüsselung offengelegt wird. Müsste ich also für jedes Ereignis, das diese Verschlüsselung erfordert, ein neues Schlüsselpaar generieren?
Ich habe noch nie CryptoJS oder Forge oder andere browsersymmetrische Verschlüsselungen verwendet. Ich habe mich gefragt, wie ich das sicher abziehen kann.
Ihre beste Vermutung ist ziemlich genau richtig. Wenn Sie erwarten, dass der Vertrag die Entschlüsselung durchführt, müssen Ihr geheimer und privater Schlüssel dafür offengelegt werden. Wenn dies akzeptabel ist, können Sie für jedes gespeicherte Geheimnis neue Schlüsselpaare generieren.
Wenn Sie nur das Geheimnis speichern und außerhalb des Vertrags entschlüsseln möchten, könnten Sie wahrscheinlich damit einverstanden sein, dieselben Verschlüsselungsschlüssel mehrmals zu verwenden.
Wie Sie vorschlagen, kann Ihr Vertrag nicht entschlüsselt werden, ohne den Schlüssel (und den neu entschlüsselten Klartext) der Welt zugänglich zu machen. Auch der Rest der Welt wird Ihren Schlüssel vor Ihrem Vertrag sehen können, da die Leute ihn aus der Transaktion erhalten können, bevor er abgebaut wird.
Wir können möglicherweise hilfreicher sein, wenn Sie uns etwas mehr darüber erzählen, was Sie erreichen möchten.
ätherisch
Edmund Edgar
ätherisch
Edmund Edgar