![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_14.png?5a7ff87)
画像(jpg)⇒暗号⇒文字列(txt)⇒復号⇒画像(jpg)をやりたい。
画像を文字列で取得して、
それを以下のURLの暗号メソッドを使用して
http://dobon.net/vb/dotnet/string/encryptstring. …
変換した文字列をテキストで保管する。
そして、逆に先程のテキストを文字列で取得して、
先程のURLの復号メソッドを使用して、
変換した文字列をjpgで保管する。
これがやりたいのですが、
暗号する前と、暗号した後で変換される文字列が違ってしまいます。
画像とかは、テキストで開けるから普通に文字列として扱って問題ないのかな
と思っているのですが・・・なんで違ってくるのかが分かりません。
ちなみに、URLのメソッド(暗号/復号)は普通の文字列での動作は確認が取れています。
自分がこれ原因かな~って思うと子は以下の通りです。
・復号したファイルをファイルストリームで拡張子jpgにしている為、
画像ファイル作成時にしなければいけない処理が抜けている?
・読み込んだ文字列を一度テキストに書き込んでいる際に、何かしら文字コード関係で
不具合が生じている。
・というか元々文字列で処理してjpgを暗号しようなんて無理
こんな私に助け舟を!!
・・・忘れていました。言語はC#です。
ご回答の程よろしくお願い致します。
No.2ベストアンサー
- 回答日時:
最初の「画像を文字列で取得して、」のくだりが良くわかりません。
JPGファイルをC#で文字列型に読み込んだ
という意味ですか?
もしそうならば、最初からバイナリデータとして読み込むように変更しましょう。
> http://dobon.net/vb/dotnet/string/encryptstring. …
に掲載されているソースを拝見しますと、文字列からバイナリの取り出しに、
System.Text.Encoding.UTF8.GetBytes
をいう処理を行っています。ここで文字コード変換がかかっているかもしれません。
あるいは、一度ファイルに書き出す際に、文字として表現できないデータが失われているのかもしれません。
バイナリ・ファイルを読み書きするには?[C#、VB] - @IT
http://www.atmarkit.co.jp/fdotnet/dotnettips/669 …
色々調べた結果、System.Convert.ToBase64というのにたどり着きました。
以下が画像を文字列で読み込んで、書き込みを行なうサンプルです。
//Base64で文字列に変換するファイル
string inFileName = @"test.jpg";
System.IO.FileStream inFile;
byte[] bs;
//ファイルをbyte型配列としてすべて読み込む
inFile = new System.IO.FileStream(inFileName,
System.IO.FileMode.Open, System.IO.FileAccess.Read);
bs = new byte[inFile.Length];
inFile.Close();
//Base64で文字列に変換
string base64String = System.Convert.ToBase64String(bs);
//バイト型配列に戻す
byte[] bs = System.Convert.FromBase64String(base64String);
outFileName = @"test2.jpg";
//ファイルに書き込む
System.IO.FileStream outFile = new System.IO.FileStream(outFileName,
System.IO.FileMode.Create, System.IO.FileAccess.Write);
outFile.Write(bs, 0, bs.Length);
outFile.Close();
あとは文字列に変換した『base64String』を暗号して復号して、
バイト型配列に戻して、画像を作成しましたが、ちゃんと表示されました。
お世話になりました。
ご回答ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- フリーソフト BIOS.binをバイナリエディタで開くと ascii 変換しても、暗号化されていて何か分からない文 6 2022/07/11 03:34
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Excel(エクセル) ある数値に対して、値を返す数式についてです 2 2022/09/13 22:06
- フリーソフト フォルダ、ファイル名の一括変換について 3 2023/03/16 09:23
- Excel(エクセル) excelで検索した商品の画像(ネットワーク上の)を表示させたい。 3 2023/06/28 00:32
- その他(ソフトウェア) 画像のファイル形式、拡張子が変わると、性能が変わると思うのですが、ファイル名の「jpg、png、do 8 2022/08/10 13:37
- HTML・CSS リンクバナーのHTMLタグ。画像を変えたり、設置位置を変えるとバナー貼付け側はどう見える? 2 2023/02/01 12:01
- Wi-Fi・無線LAN ルーターの暗号化キーはなぜ初期値から変更するの? 2 2022/08/11 16:28
- Excel(エクセル) Excel 毎日手作業で時間がかかって、泣きたいです、、、VBAのプロの方、助けてください。。。 3 2022/10/25 04:26
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでアルファベットか数...
-
VBAでの Replace関数で、ワイル...
-
EXCELで=より左の文字を一括で...
-
Excelで3E8を3.00E+8にしない方...
-
エクセルで文字列をtxtファイル...
-
MS SQLServer のSQLで文字列の...
-
Excelで指数表現しないようにす...
-
文字列からタブコードを取り除...
-
エクセルで文字列の最大値を抽...
-
Left関数とRight関数を合わせた...
-
PDFのファイル名をリネームをし...
-
Msgboxの×が押されたとき
-
OnTime 使用時のプロシージャへ...
-
VBの「As String * 128」とは?
-
変数内に入った文字列の結合 UWSC
-
CStringの文字列検索&抜き出し...
-
ORCLEでの小数の表示方法の変更...
-
16進数を10進数に簡単に変換す...
-
エクセルでセル内の文字列の最...
-
C#で年月を比較する
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでアルファベットか数...
-
EXCELで=より左の文字を一括で...
-
VBAでの Replace関数で、ワイル...
-
文字列からタブコードを取り除...
-
Excelで指数表現しないようにす...
-
Excelで3E8を3.00E+8にしない方...
-
エクセルで文字列の最大値を抽...
-
MS SQLServer のSQLで文字列の...
-
エクセルで文字列をtxtファイル...
-
Left関数とRight関数を合わせた...
-
【Excel VBA】複数ある特定の文...
-
同一セル内に関数と文字列を同...
-
VBA2005 16進を2桁で表示したい。
-
VBの「As String * 128」とは?
-
エクセル 数値データを桁をそ...
-
Msgboxの×が押されたとき
-
Excelはなんで先頭の0を消すん...
-
16進数を10進数に簡単に変換す...
-
Pro c/c++ でホスト変数の後に....
-
[C言語]fputsとfprintfの違い
おすすめ情報