/ / Scala - Jak mogę odczytać określone bajty z pliku? - scala

Scala - Jak mogę odczytać określone bajty z pliku? - scala

Chciałbym zaszyfrować tekst (około 1 MB) i używammaksymalna długość kluczy RSA (4096 bitów). Klucz wydaje się jednak zbyt krótki. Podczas przeglądania Google dowiedziałem się, że maksymalny rozmiar tekstu, który RSA może szyfrować, jest o 8 bajtów krótszy niż długość klucza. W ten sposób mogę zaszyfrować tylko 501 bajtów. Postanowiłem więc podzielić swój tekst na 2093 tablice (1024 * 1024/501 = 2092.1). Pytanie brzmi: jak mogę wlać pierwsze 501 bajtów do pierwszej tablicy w scala? Każdy, kto może mi pomóc?

Odpowiedzi:

1 dla odpowiedzi № 1

Nie mogę skomentować, czy masz kryptografiępodejście jest w porządku. (Nie wiem, ale gdybym był w twoich butach, polegałbym na bibliotekach napisanych i sprawdzonych przez bardziej kompetentnych kryptografów. Nie jestem pewien, dlaczego wybrałeś 501, czyli 11 bajtów, a nie 8, mniej niż 512.)

Ale dzielenie tablic na bloki o stałej wielkości powinno być łatwe. Po prostu użyj zgrupowane funkcja f Tablica.

val text : String = ???
val bytes = text.getBytes( scala.io.Codec.UTF8.charSet ) // lots of ways to do this
val blocks = bytes.grouped( 501 )

Bloki będą Iterator[Array[Byte]], każdy 501 bajtów, z wyjątkiem ostatniego (który może być krótszy).