Scala-如何从文件中读取某些特定字节?

时间:2017-03-20 00:53:56

标签: scala

我想加密一个文本(大约1 MB),我使用RSA密钥的最大长度(4096位)。但是,关键似乎太短暂了。当我用Google搜索时,我知道RSA可以加密的文本的最大大小比密钥的长度短8个字节。因此,我只能以这种方式加密501个字节。所以我决定将我的文本划分为2093个数组(1024 * 1024/501 = 2092.1)。问题是如何将前501个字节倒入scala中的第一个数组?有谁可以帮我解决这个问题?

1 个答案:

答案 0 :(得分:1)

我无法评论您的加密方法是否合适。 (我不知道,但如果我在你的鞋子里,我会依赖于由知识渊博的密码学家编写和审查的图书馆。我不确定你为什么选择501,这是11字节,而不是8,短于512。)

但是将阵列分块到固定大小的块应该很容易。只需使用grouped函数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 )

块将是Iterator[Array[Byte]],每个501字节长,除了最后一个(可能更短)。