Mit einem 16k-Bit-Schlüssel kann ich 1000 Anrufe in 2893ms verschlüsseln (also ~ 3ms pro), das scheint nicht langsam genug, um einen Fortschrittsbalken zu benötigen.
Entschlüsseln, auf der anderen Seite war 458.554ms für 1000 Anrufe (also ~ 460ms pro). Aber eine halbe Sekunde scheint eine Fortschrittsanzeige noch nicht wirklich zu rechtfertigen. Und nicht sehr viele Menschen haben 16k-Bit-RSA-Schlüssel (da sie Stunden in Anspruch nehmen zu erzeugen)
einige andere schnelle Zahlen (Zeit pro 1000 Anrufe, in ms):
Keysize | Encrypt | Decrypt
--------|---------|--------
16384 | 2893 | 458554
4096 | 216 | 14636
3584 | 182 | 13259
3072 | 149 | 8370
2560 | 127 | 4680
2048 | 94 | 2083
1536 | 86 | 1236
1024 | 71 | 473
512 | 64 | 150
So ist die beste Sie tun können, ist der falsche Fortschrittsbalken beim Versenden von Textnachrichten ... du machst einige Heuristiken für wie lange du denkst, dass es dauern wird, und künstlich den Fortschrittsbalken bewegen, dann einen "eep" -Moment bei 80% machen, wenn es nicht wirklich gemacht wird.
Da die Anleitung darin besteht, nur asymmetrische Operationen zum Bootstrap symmetrischer Operationen zu verwenden (wie bereits in den Kommentaren vorgeschlagen), können Sie wahrscheinlich nur für die symmetrischen Operationen einen Fortschrittsbalken verwenden, wenn sie langsam genug sind Sie, um es zu rechtfertigen. Wenn Sie einen Fudge-Faktor für die asymmetrische Operation einwerfen möchten, würde es nicht schaden.
Indem Sie die Gesamtanzahl der Bytes in einer Variablen halten und die aktuelle Anzahl der Bytes während der Verschlüsselung in einer anderen. Lies [ask], zeige deinen Code und erkläre, was du versucht hast. – CodeCaster
Sie können nicht, diese Methode meldet keinen Fortschritt. Die einzige Möglichkeit, wenn dies überhaupt möglich ist, besteht darin, diese Methode oder eine ähnliche mit kleineren Blöcken aufzurufen, um den Fortschritt dazwischen zu aktualisieren. –
** Allerdings verschlüsseln Sie normalerweise keine großen Binärdateien mit RSA-Verschlüsselung. Stattdessen generieren Sie einen zufälligen Schlüssel und verwenden eine schnellere Verschlüsselungsmethode wie RIJNDAEL, wobei Sie den Schlüssel nur mit RSA verschlüsseln. –