私はテキスト(約1 MB)を暗号化したいと思いますし、RSAキー(4096ビット)の最大長を使用します。しかし、鍵は短すぎるようです。私がグーグルで調べたところ、RSAが暗号化できるテキストの最大サイズはキーの長さよりも8バイト短いことがわかった。したがって、私はこの方法で501バイトしか暗号化できません。そこで私はテキストを2093の配列(1024 * 1024/501 = 2092.1)に分割することにしました。最初の501バイトをスカラーの最初の配列にどうやって入れるのですか?Scala-ファイルから特定のバイトを読み取るにはどうすればよいですか?
0
A
答えて
0
あなたの暗号手法が問題ないかどうかはコメントできません。 (私は知りませんが、私があなたの靴を履いていれば、知識の豊富な暗号学者によって書かれた図書館に頼るでしょう。なぜ501を選んだのか分かりません.11バイトで8ではなく、512よりも短いです。)
しかし、あなたの配列を固定サイズのブロックにチャンクするのは簡単です。関数f配列groupedを使用してください。
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バイト(短くてもよいです)。
関連する問題
- 1. クライアントサーバープログラムのファイルから特定のバイトを読み取る
- 2. テキストファイルから特定の要素を読み取るにはどうすればよいですか?
- 3. ファイルから特殊文字を読み取るにはどうすればよいですか?
- 4. 非常に重いファイルからバイトを読み取るにはどうすればよいですか?それらをストリングに格納する。 .pdf .zip .xlsxファイル
- 5. Pythonでファイル全体を読み取らずに、ファイルの4つの特定の行を読み込むにはどうすればよいですか?
- 6. コロナSDKのファイルから値を読み込み/取得するにはどうすればよいですか?
- 7. PythonのバイナリMP3ファイルから特定のバイトを読み取る方法は?
- 8. NodeJSで動作するClojureScriptからEDNファイルを読み取るにはどうすればよいですか?
- 9. ゴランのバッファードリーダーから特定のバイト数を読み取る
- 10. Apache POIで特定の行を読み取るにはどうすればよいですか?
- 11. Nagios私のコマンドでファイルから属性値を読み取るにはどうすればよいですか?
- 12. 異なる行数の列をExcelファイルから読み取るにはどうすればよいですか?
- 13. 特定のブラウザで特定のスクリプトを読み込むにはどうすればよいですか?
- 14. 特定の子要素以外の要素を読み取るにはどうすればよいですか?
- 15. ファイルからの入力を正しく読み取るにはどうすればよいですか?
- 16. Javaのファイルから数値を読み取るにはどうすればよいですか?
- 17. 他のアンドロイドアプリアセットファイルからhtmlファイルを読み取るにはどうすればよいですか?
- 18. PHPのXMLファイルから要素を読み取るにはどうすればよいですか?
- 19. 2D配列をそのまま.txtファイルから読み取るにはどうすればよいですか?
- 20. VB6でxBase/Clipperファイルからデータを読み取るにはどうすればよいですか?
- 21. PHPでCorelファイルからxmlメタデータを読み取るにはどうすればよいですか?
- 22. Pythonでファイルからリストを読み取るにはどうすればよいですか?
- 23. javascriptで特定のページの読み込みを検出するにはどうすればよいですか?
- 24. 特定のコンテナをFXMLドキュメントから読み込むにはどうすればよいですか?
- 25. .ttファイル(T4テンプレート)からweb.configからappSettingを読み取るにはどうすればいいですか?
- 26. C#を使用して.txtファイルからデータを読み取るにはどうすればよいですか?
- 27. jQueryを使用してJSONからファイルを読み取るにはどうすればよいですか?
- 28. javaScriptを使用してurlからtxtファイルを読み取るにはどうすればよいですか?
- 29. ページの読み込み時にボトルネックを特定するにはどうすればよいですか?
- 30. Jersey Webサービスでバイト配列プロパティを読み取るにはどうすればよいですか?
はい、私は間違いを犯しました.8バイトではなく11バイト短くなりました –
"text.toList"を使用し、ブロックはIterator [List [Char]]です。タイプはArray [Byte]です。どのようなソリューションをタイプを変更するには? –
あなたが501文字のブロックにグループ化した場合、あなたのテキストがすべてASCIIでない限り、UTF8デコードで501バイトになるという保証はないので、最初に私が示したようにバイトに行くのが最善です。私は上記のアプローチをお勧めします。狭い質問では、Iterator [List [Char]]をIterator [List [Byte]]にすることができます。 'iterListChar.map(_.mkString.getBytes(scala.io.Codec.UTF8.charSet))'のようなものです。 –