いつもお世話になっています。ccです。
今使っているラスターデータはTiff形式です。
データの保護するため、フォーマットを変更したいのですが、
目的としては、ラスターデータを自作アプリしか開かないということです。
もし、Tiffフォーマットはだめなら、BMP形式にします。
どういうふうにすればいいかわかりません。
以上、よろしくお願いします。
環境:.Net2002 WinXP MFC使用
> データの保護するため、フォーマットを変更したいのですが、
> 目的としては、ラスターデータを自作アプリしか開かないということです。
うっかり開かれないようにする程度なら、拡張子を変更するだけで十分。
素人には開かれないようにするなら、バイナリデータとして読み込んで、
全ビットを反転させて保存すれば、多分十分。
誰にも絶対に開かれないようにするのは原理的に不可能だけど、
これに近いものを求めるならば、暗号について勉強してください。
たいちうさん
ご返事ありがとう。
>うっかり開かれないようにする程度なら、拡張子を変更するだけで十分。
不十分です。
>素人には開かれないようにするなら、バイナリデータとして読み込んで、
>全ビットを反転させて保存すれば、多分十分。
今、CImageクラスを使っていますが、どうすれば以上のことをできるのでしょうか。
もっと具体的なことを教えていただけませんか。
>誰にも絶対に開かれないようにするのは原理的に不可能だけど、
>これに近いものを求めるならば、暗号について勉強してください。
今の段階には、考えていません。(時間がかかりそうです)
よろしくお願いします。
「ラスタデータ.tiff」から、「反転したデータ.secret」への変換方法を説明します。
1.「ラスタデータ.tiff」をバイナリモードで開き1バイト読み込む。
2.ビットを反転する。
3.「反転したデータ.secret」をバイナリモードで新しく開き、
反転したデータを1バイト書き込む。
4.「ラスタデータ.tiff」の最後のデータになるまでこれを繰り返す。
コピー機に「白黒反転コピー」という機能があるとして、
その機能を1ページずつ使って、1冊の本全部を反転しようというイメージです。
もっと効率の良い方法はいくらでもあるので工夫してください。
(見開き2ページずつ反転コピーするとか)
「反転したデータ.secret」を「ラスタデータ.tiff」に戻すのも、
同じ方法です。
後は、「ラスタデータ.tiff」は削除してしまい、
プログラム起動時に「反転したデータ.secret」を反転して、
秘密のフォルダにでも保存し、これを読込んでCImageを作りましょう。
そして、読み込んだ直後に「ラスタデータ.tiff」は削除します。
この辺の運用も、もっとマシな方法があるだろうから、
必要に応じて工夫してください。
参考 :
fopen, fgetc, fputc, fclose
char c_dst = ~c_src;
たいちうさん、
ご返事ありがとう。
1,2,3,4の手順で、私に対してかなり時間がかかりそうです。
(汗)
少し調べてから、質問をすると思っています。
その時よろしくお願いします。
どうもありがとうございました。