/ / Scala- Как мога да прочета някои специфични байтове от файл? - скала

Скала - Как мога да прочета някои специфични байтове от файл? - скала

Бих искал да шифровам текст (около 1 MB) и да използваммаксималната дължина на RSA ключове (4096 бита). Ключът обаче изглежда твърде кратък. Докато отидох, разбрах, че максималният размер на текста, който RSA може да криптира, е с 8 байта по-кратък от дължината на ключа. По този начин мога само да шифровам 501 байта по този начин. Така че реших да разделям текста си на 2093 масиви (1024 * 1024/501 = 2092.1). Въпросът е как мога да излея първите 501 байта в първия масив в скалата? Всеки, който може да ми помогне?

Отговори:

1 за отговор № 1

Не мога да коментирам дали ви криптографскиподходът е наред. (Не знам, но ще разчитам на библиотеки, написани и проверени от по-добре информирани криптографи, ако бях на вашите обувки. Не съм сигурен защо избрахте 501, което е 11 байта, а не 8, по-малко от 512.)

Но блокирането на масивите ви в блокове с фиксиран размер трябва да е лесно. Просто използвайте групирани функция f Масив.

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

Блоковете ще бъдат Iterator[Array[Byte]], всеки 501 байта дълго, с изключение на последния (който може да бъде по-кратък).