質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
暗号化

ネットワークを通じてデジタルデータをやり取りする際に、第三者に解読されることのないよう、アルゴリズムを用いてデータを変換すること。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

2回答

2939閲覧

C++ ファイルの暗号化復号化

Rocco

総合スコア7

暗号化

ネットワークを通じてデジタルデータをやり取りする際に、第三者に解読されることのないよう、アルゴリズムを用いてデータを変換すること。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2020/10/01 07:24

前提・実現したいこと

C++によるファイルの暗号化、復号化。

発生している問題・エラーメッセージ

C++を学習しています。ファイルの暗号化と復号化のやり方を調べていたら以下のソースに出会いました。
C++の基本文法は理解してきましたが、読み解くことができませんでした。
お力を貸していただけると嬉しいです。

どういう処理なのか 分からない点1 なにをしているのか fpt.open( "temp.txt") if(!fpt) {{ cout << "temp.txtファイルの作成中にエラーが発生しました.. !!"; fps.close(); cout << "\ n終了するには任意のキーを押してください..."; getch(); exit(2); } 分からない点2:どういう処理なのか。fps>>ch;は何か。 while(fps.eof()== 0) {{ fps >> ch; ch = ch + 100; fpt << ch; }

該当のソースコード

C++
#include <iostream.h>
#include <conio.h>
#include <fstream.h>
#include <stdio.h>
#include <stdlib.h>
void main()
{{
clrscr();
char fname [20]、ch、choice;
fstream fps、fpt;
cout << "暗号化するファイル名(file.txtなどの拡張子)を入力してください:";
get(fname);
fps.open(fname);
if(!fps)
{{
cout << "ファイルを開くときにエラーが発生しました.. !!";
cout << "\ n終了するには任意のキーを押してください...";
getch();
exit(1);
}
fpt.open( "temp.txt")
if(!fpt)
{{
cout << "temp.txtファイルの作成中にエラーが発生しました.. !!";
fps.close();
cout << "\ n終了するには任意のキーを押してください...";
getch();
exit(2);
}
while(fps.eof()== 0)
{{
fps >> ch;
ch = ch + 100;
fpt << ch;
}
fps.close();
fpt.close();
fps.open(fname);
if(!fps)
{{
cout << "ソースファイルを開くときにエラーが発生しました.. !!";
cout << "\ n終了するには任意のキーを押してください...";
getch();
exit(3);
}
fpt.open( "temp.txt");
if(!fpt)
{{
cout << "temp.txtファイルを開くときにエラーが発生しました... !!";
fps.close();
cout << "\ n終了するには任意のキーを押してください...";
getch();
exit(4);
}
while(fpt.eof()== 0)
{{
fpt >> ch;
fps << ch;
}
cout << "ファイル" << fname << "が正常に暗号化されました.. !!";
cout << "\ n終了するには任意のキーを押してください...";
fps.close();
fpt.close();
getch();
}

試したこと

参考文献 https://codescracker.com/cpp/program/cpp-program-encrypt-file.htm

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

分からない点1 なにをしているのか

temp.txtをひらけなかった場合にエラーを表示しキー入力待ちしています。
std::
basic_fstream::
open

分からない点2:どういう処理なのか。fps>>ch;は何か。

入力ファイルから一文字読み取り、文字コードを100ずらして出力ファイルに書き込んでいます。
std::
operator>>

std::
operator<<

投稿2020/10/01 07:38

編集2020/10/01 07:43
SHOMI

総合スコア4079

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Rocco

2020/10/01 09:05

お忙しいところお答えいただきありがとうございます。 大変参考になりました。
guest

0

シーザー暗号 で検索すると、情報が出てきます。

アルファベットを含む半角文字は ascii コードで 0 ~ 256 の数値が割当られているので、質問のコードだと与えられた個々の文字を ascii コード上で100だけずらした文字列に変換しています。

ASCIIコード表

a (97) => Å (197) b (98) => Æ (198) c (99) => Ç (199) d (100) => È (200) e (101) => É (201) f (102) => Ê (202) g (103) => Ë (203) h (104) => Ì (204) i (105) => Í (205) j (106) => Î (206) k (107) => Ï (207) l (108) => Ð (208) m (109) => Ñ (209) n (110) => Ò (210) o (111) => Ó (211) p (112) => Ô (212) q (113) => Õ (213) r (114) => Ö (214) s (115) => × (215) t (116) => Ø (216) u (117) => Ù (217) v (118) => Ú (218) w (119) => Û (219) x (120) => Ü (220) y (121) => Ý (221) z (122) => Þ (222) A (65) => ¥ (165) B (66) => ¦ (166) C (67) => § (167) D (68) => ¨ (168) E (69) => © (169) F (70) => ª (170) G (71) => « (171) H (72) => ¬ (172) I (73) => ­ (173) J (74) => ® (174) K (75) => ¯ (175) L (76) => ° (176) M (77) => ± (177) N (78) => ² (178) O (79) => ³ (179) P (80) => ´ (180) Q (81) => µ (181) R (82) => ¶ (182) S (83) => · (183) T (84) => ¸ (184) U (85) => ¹ (185) V (86) => º (186) W (87) => » (187) X (88) => ¼ (188) Y (89) => ½ (189) Z (90) => ¾ (190)

投稿2020/10/01 07:35

編集2020/10/01 07:38
tiitoi

総合スコア21956

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Rocco

2020/10/01 09:05

お忙しいところお答えいただきありがとうございます。 大変参考になりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問