Ich möchte einen Text (ca. 1 MB) verschlüsseln und ich verwende die maximale Länge der RSA-Schlüssel (4096 Bits). Der Schlüssel scheint jedoch zu kurz. Als ich gegoogelt habe, habe ich erfahren, dass die maximale Größe von Text, den ein RSA verschlüsseln kann, 8 Bytes kürzer ist als die Länge des Schlüssels. Daher kann ich auf diese Weise nur 501 Bytes verschlüsseln. Also habe ich mich entschieden, meinen Text in 2093 Arrays zu teilen (1024 * 1024/501 = 2092.1) .Die Frage ist, wie kann ich die ersten 501 Bytes in das erste Array in Scala einfüllen? Wer kann mir helfen?Scala- Wie kann ich bestimmte Bytes aus einer Datei lesen?
0
A
Antwort
0
Ich kann nicht sagen, ob Ihr kryptographischer Ansatz in Ordnung ist. (Ich weiß es nicht, aber ich würde mich auf Bibliotheken verlassen, die von erfahreneren Kryptografen geschrieben und überprüft wurden, wenn ich in Ihren Schuhen wäre. Ich bin mir nicht sicher, warum Sie 501 wählen, das ist 11 Bytes, nicht 8, shooter als 512.)
Aber Chunking Ihre Arrays in Blöcken fester Größe sollte einfach sein. Verwenden Sie einfach die grouped Funktion f Array.
val text : String = ???
val bytes = text.getBytes(scala.io.Codec.UTF8.charSet) // lots of ways to do this
val blocks = bytes.grouped(501)
Blocks wird eine Iterator[Array[Byte]]
, die jeweils 501 Bytes lang sein, mit Ausnahme der letzten (die kürzer sein kann).
Verwandte Themen
- 1. Erste Bytes einer Datei lesen
- 2. Wie tausche ich bestimmte Bytes in einer Datei mit Python?
- 3. Kristall Lesen x Bytes aus der Datei
- 4. scala | Aus Datei lesen | Typenkonflikt |
- 5. Socket-Programmierung: Wie kann ich eine bestimmte Anzahl von Bytes aus dem Puffer lesen?
- 6. Ruby - Bytes aus einer Datei lesen, in Ganzzahl konvertieren
- 7. Bytes aus einer JavaScript-Zeichenfolge lesen
- 8. fgetc vermisst Bytes beim Lesen einer Datei
- 9. node.js/100 erste Bytes einer Datei lesen
- 10. Wie kann ich JSON aus einer lokal gespeicherten Datei lesen?
- 11. Wie kann ich eine magische Zahl aus einer Datei lesen?
- 12. Wie kann ich Kommentare aus einer Zip-Datei lesen?
- 13. Aus Datei lesen und bestimmte Zeilen finden
- 14. Lesen Sie eine Matrix aus einer Datei in Scala Breeze
- 15. Eine bestimmte Zeichenfolge aus einer XML-Datei lesen C#
- 16. Extrahieren Bereich von Bytes aus Datei in Scala
- 17. Wie kann ich lesen/schreibe Bytes/Bits zu einer neuen Datei in C++
- 18. Node.js v0.10: Ersetzen Sie bestimmte Bytes in der Datei ohne ganze Datei zu lesen
- 19. Kann ich aus einer Datenbankdatei lesen?
- 20. Scala lesen JSON-Datei
- 21. Wie liest man eine bestimmte Zeile aus einer großen Datei?
- 22. Wie lese ich eine bestimmte Anzahl von Bytes aus einer Datei in ein Byte-Array in Java?
- 23. Wie kann ich vier bestimmte Zeilen einer Datei lesen, ohne die gesamte Datei in Python zu lesen?
- 24. So lesen Sie eine bestimmte Anzahl von Bytes rückwärts vom Ende einer Datei C++
- 25. Warum kann ich in Python nicht mehr als 16 Bytes einer JPEG-Datei lesen?
- 26. Lesen spezifische Bytes Datei in Python
- 27. , wie aus einer Datei
- 28. Wie kann ich Werte aus einer XML-Datei in einer fxml-Datei lesen?
- 29. kann nicht lesen Datei aus einem Verzeichnis
- 30. Wie entferne ich Spalten aus einer CSV-Datei mit Scala
Ja, ich habe einen Fehler gemacht.11 Bytes kürzer nicht 8 Bytes kürzer –
Ich benutze "text.toList" und der Block ist Iterator [Liste [Char]]. Der Typ, den ich will, ist Array [Byte], hast du irgendwelche Lösungen, um den Typ zu ändern? –
ist es am besten, zuerst zu Bytes zu gehen, wie ich gezeigt habe, denn wenn Sie in Blöcke von 501 Zeichen gruppiert haben, gibt es keine Garantie, dass diese in 501 Bytes bei UTF8 Decodierung werden (außer Sie sind sicher, dass Ihr Text ASCII ist). Ich empfehle den Ansatz, den ich oben gezeigt habe. auf die enge Frage, können wir 'Iterator [List] [Char]] in 'Iterator [List [Byte]]', sicher. etwas wie 'iterListChar.map (_.mkString.getBytes (scala.io.Codec.UTF8.charSet))' –