今回はJavaでファイルを暗号化してみる。InputStream/OutputStreamを暗号化するため、応用すれば通信路やオブジェクトの暗号化も可能である。ただ、通信路の暗号化としてはsshやsslといったプロトロコルがあるので、専用のライブラリを利用するほうがよいと思われる。 ■ 暗号の基礎知識 暗号化とは簡単に言うと『他人が読めない文に変換すること』であり、対して『暗号化された文を人が読める文に変換すること』を復号化と呼ぶ。このとき『他人が読めない文』を暗号文、『人が読める文』を平文・復号文と呼び、変換するルールのことをアルゴリズムと呼ぶ。 簡単な例で言ってみると、刑事ドラマで犯人のことを「ホシ」と呼んでいたりするが、これも一種の暗号化である。「犯人=ホシ」という言い換え(アルゴリズム)が広まっていない頃は、「ホシが逃げました」という言葉を一般人が聞いても、何の話をしているかわから