ふらっと C#,C♯,C#(初心者用) Part131 [無断転載禁止]©2ch.net

レス数が950を超えています。1000を超えると書き込みができなくなります。
1デフォルトの名無しさん
垢版 |
2017/09/08(金) 18:12:11.06ID:Ej7G00WU
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。

他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。

内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。

なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■前スレ
ふらっと C#,C♯,C#(初心者用) Part130
https://mevius.2ch.net/test/read.cgi/tech/1500327645/
■関連スレ
C#, C♯, C#相談室 Part94 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1492843013/

■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/

■情報源
https://msdn.microsoft.com/en-us/library/gg145045.aspx
http://referencesource.microsoft.com/
899デフォルトの名無しさん
垢版 |
2017/10/09(月) 14:40:20.42ID:qEhozSMZ
>>896
トンチンカンなバカレスするお前は初心者以下
2017/10/09(月) 14:52:27.91ID:KtpP5XlM
>>899
わからないならそう言えば?
2017/10/09(月) 14:58:22.98ID:Ow6+xo9r
>>900
関連スレに2度と来ないでくれ
902デフォルトの名無しさん
垢版 |
2017/10/09(月) 15:01:38.21ID:qEhozSMZ
>>900
じゃあ早く俺のレスに答えて
2017/10/09(月) 15:02:18.20ID:T0povuKJ
ID:KtpP5XlM はただの荒らしだろ
もう構うな
2017/10/09(月) 15:02:45.85ID:M//uOX8+
>>887
無意味ではないよ
文字列抜き出すのとアルゴリズムの解析とでは
必要な時間が全く違うからね
それこそ難読化の出番
2017/10/09(月) 15:05:23.09ID:M//uOX8+
>>890
Aに秘密鍵、Bに公開鍵で。
Aの秘密鍵を守る対策は別途必要
2017/10/09(月) 15:06:38.70ID:LtbrVXIC
埋め込みでリソース持つのと、外部ファイルで持つのってセキュリティそんなに変わらんでしょ?
2017/10/09(月) 15:07:25.29ID:ZyuEIFSh
そもそも暗号化手順+暗号キーを知られたくないならまだしも暗号キーをとにかく知られたくないというのが分からない
元の質問者は終了宣言しているし外野が条件変えながら議論しても無意味
2017/10/09(月) 15:09:31.57ID:KtpP5XlM
暗号化通信の基本もわかってないのにプログラマ名乗っちゃダメだろ君たち
909デフォルトの名無しさん
垢版 |
2017/10/09(月) 15:10:52.65ID:qEhozSMZ
>>908
逃げんな
早く答えろ
2017/10/09(月) 15:15:00.06ID:of8Vs49y
>>891
それなんの意味があるんだよ w
2017/10/09(月) 15:18:53.37ID:KtpP5XlM
公開鍵で暗号化プログラムA
秘密鍵で復号プログラムB
Bの利用者は鍵ペアを生成
外部ファイルとして秘密鍵をプログラムに渡す
公開鍵を通信相手に渡す
終わり
2017/10/09(月) 15:22:46.29ID:KtpP5XlM
コード書けりゃプログラマじゃないぞ
お前らはC#なんてやっとらんでITパスか基本情報でも取ってこい
2017/10/09(月) 15:29:43.51ID:vwGL24JO
そのまえに日本語が書けないと困るな
2017/10/09(月) 15:30:38.86ID:LtbrVXIC
そういや試験は来週ぐらいか
2017/10/09(月) 15:39:49.40ID:of8Vs49y
>>911
だからそれなんの意味があるんだよ w
>>906の意味わかってないのか?
2017/10/09(月) 15:54:47.16ID:F9+aoLk/
if(HashPasswordForStoringInConfigFile(パスワード, "sha1").ToLower() == ハッシュ文字列)
{/*編集可能処理*/}

って書いてあった
2017/10/09(月) 15:57:26.54ID:ZyuEIFSh
>>916
>>879のデータの暗号化とパスワードの認証は別の話
ハッシュで認証するから元のパスワード持っていなくていいよ、てのはわかるが
2017/10/09(月) 16:04:00.40ID:LtbrVXIC
認証したいなら個別に別ルートでパスワード発行

ユーザー全員に共通パスワード持たせたいならセキュリティ諦めてリソース持つぐらいで十分
できれば中間にAPI噛ませて何かあった時の被害をコントロールできるようにしておいたほうがいい
2017/10/09(月) 16:39:19.76ID:F9+aoLk/
>>917
単純にテキストだけの話なの?
バイナリファイル読み込め的な?
2017/10/09(月) 16:39:54.37ID:Uib+y8KD
以前List<T>オブジェクトをXmlシリアライズ・デシリアライズする拡張メソッドを作ったのですがユーザー定義クラスのときだけ動きません
public static void SaveXml<T>(this List<T> list, string path)
{
T[] xmldata = list.ToArray();

using (FileStream fs = new FileStream(path, FileMode.Create))
{
XmlSerializer xml = new XmlSerializer(typeof(T[]));

xml.Serialize(fs, xmldata);
}
}

こういった感じでList<MyData>型の変数myDataList.SaveXml("D:\hogehoge.xml")と呼ぶとxml.Serialize(fs, xmldata)のところで
System.InvalidOperationExceptionが投げられます。ただのList<string>型の場合投げられません。
どこがまちがっているでしょうか?
2017/10/09(月) 17:09:31.29ID:mhNcAFC5
とりあえずその投げられた例外をToString()して全部読んでみて
922デフォルトの名無しさん
垢版 |
2017/10/09(月) 17:14:46.63ID:qEhozSMZ
>>911
はあ?
秘密鍵丸見えじゃ無意味って理解出来ないの?
2017/10/09(月) 17:18:01.05ID:RdvZrZJ8
>>922
君は果てしなく馬鹿だね
2017/10/09(月) 17:19:21.84ID:c41RoAYB
自分だけはバカじゃないという前提
925デフォルトの名無しさん
垢版 |
2017/10/09(月) 17:23:16.60ID:qEhozSMZ
>>923
違う用途ならともかくこの件においては
データ改変できて無意味
2017/10/09(月) 17:24:22.08ID:RdvZrZJ8
>>925
そうかいじゃあやってみなよ
2017/10/09(月) 17:28:38.64ID:r14Jr9yH
>>920
型以外の条件を一切変更していないのに(ダメな人は他の条件も変えてたりするから困るw)
TがMyDataの場合だけ例外は発生するのであれば、
普通に考えてMyDataがXMLシリアル化可能な条件を満たしてないんでしょう。

例えばデフォルトコンストラクタがないとかそもそもpublicなクラスじゃないとか。
928デフォルトの名無しさん
垢版 |
2017/10/09(月) 17:28:45.97ID:qEhozSMZ
>>926
は?
間違ったやり方をやるわけないだろバカ
2017/10/09(月) 17:29:14.61ID:RdvZrZJ8
>>928
できないんだね
2017/10/09(月) 17:34:23.08ID:Uib+y8KD
>>921
できなかったのはコンストラクタ定義していたせいでした、すいません
2017/10/09(月) 17:42:16.72ID:CACjh+QN
馬鹿の壁みたいだ

初心者のためにかくと
公開鍵は暗号化する鍵で誰にみせてもいい
秘密鍵は暗号を解く鍵でみせてはいけない

B利用者は自分のための公開鍵と秘密鍵を作る
作った秘密鍵をプログラムBに渡す

公開鍵は誰にでも渡してプログラムAで鍵をかけてもらったものを送ってもらう

B利用者は送られたものをプログラムBで鍵を解く

送った内容は秘密鍵を持ってないと中身がみえないので安全
2017/10/09(月) 17:47:02.95ID:0amLgkzQ
命名スレで暴れてた馬鹿おじさん
こんなところにいたのか
2017/10/09(月) 17:48:41.75ID:CACjh+QN
秘密鍵を相手に渡すのは馬鹿の極み
公開鍵は誰に見られてもいいので
難読化とかそういう以前の問題

セキュリティがどうこう言う前に勉強すべき

プログラムBが公開鍵持ってても何の問題ない
2017/10/09(月) 17:49:44.10ID:c41RoAYB
お互いにバカバカいっててレベル低い系?
935デフォルトの名無しさん
垢版 |
2017/10/09(月) 17:50:42.44ID:qEhozSMZ
>>929
アスペか?日本語すら出来ないバカは死んでろ
生きてる価値も意味も皆無だから
2017/10/09(月) 17:51:09.22ID:CACjh+QN
馬鹿は馬鹿同士でお互いにバカにしあっていればいい
俺は横から初心者のために解説してるだけ
2017/10/09(月) 17:51:40.46ID:KtpP5XlM
>>935
鏡に語りかけてる
やばいやつだこいつ
2017/10/09(月) 17:51:44.57ID:r14Jr9yH
実にどうでもいい話だけど、元の質問者のケースは別人の間の通信ではないので、
公開非公開の区別の意味はないね。

この分野全然知らんけど、サーバーに復号化のための情報を置いたら安全って発想は
ちょっと理解できんなあ。

それってハッキングする側から見たら、単にサーバーの認証を突破するひと手間が
増えただけの話じゃないの?
2017/10/09(月) 17:52:50.89ID:c41RoAYB
争いは同レベル同士で起こるとはよく言ったものだ
2017/10/09(月) 17:54:11.26ID:CACjh+QN
>>938
多分適当にググれば10分ぐらいで何を言ってるかわかるよ
941デフォルトの名無しさん
垢版 |
2017/10/09(月) 17:55:23.10ID:qEhozSMZ
>>933
ユーザーに改変されたくないデータをやり取りする場合そのやり方だと無意味
2017/10/09(月) 17:56:26.56ID:CACjh+QN
うっわ無知な馬鹿に絡まれた
最悪・・・

無知でも考えれば何とか答えが出るのに…
943デフォルトの名無しさん
垢版 |
2017/10/09(月) 17:56:55.32ID:qEhozSMZ
>>937
バカはセキュリティ意識がないんだな
944デフォルトの名無しさん
垢版 |
2017/10/09(月) 17:58:13.55ID:qEhozSMZ
>>942
答えられないの?
2017/10/09(月) 17:58:55.36ID:S4nF/O79
>>938
最初から読めばファイル配布の稚拙なシステム作ろうとして注意されたのが分かる
多分本人は問題の本質に気付いていない
そしてこの問題はC#以前の話
2017/10/09(月) 17:59:02.92ID:c41RoAYB
人間の基本行動原理

自分だけはバカじゃないという前提
自分だけは誰よりも常に正しいという前提
2017/10/09(月) 18:04:39.80ID:LtbrVXIC
パブリックキーで暗号&復号化するのはパケットの話
サーバに収めるデータやDBは別
2017/10/09(月) 18:08:41.86ID:T0povuKJ
>>938
そうじゃなくてサーバーに復号化の情報を置くのではなくサーバーで復号化させるってこと
A-B間で直接やり取りできるなら別にサーバーじゃなくてもいい

どうでもいいけど質問者の案件の詳細がわからない限りこれ以上の言い争いは不毛だぞ
2017/10/09(月) 18:11:27.11ID:CsWYGxTc
サーバーで復号したものを安全にBに持ってくるにはまた暗号化が必要なんでは?
2017/10/09(月) 18:12:13.10ID:CACjh+QN
ようやく自分の誤りに気づき終息させようとするの術

その前に嵐扱いした人に謝ったほうがいいんじゃないかなw
2017/10/09(月) 18:14:40.29ID:T0povuKJ
>>949
一時的な暗号鍵を使う
その鍵は保存されないしユーザーにはわからない
2017/10/09(月) 18:17:25.45ID:T0povuKJ
>>950
俺に言ってるのかな?何も間違ったことは言ってないけど
2017/10/09(月) 18:18:49.58ID:CACjh+QN
>>952

>>911の手法は少なくとも正しい
2017/10/09(月) 18:19:37.05ID:zWF+LHai
情報小出しにして質問する→勝手な憶測で返す→条件無視の議論に発展
このコンボやめてくれ
2017/10/09(月) 18:20:42.30ID:A2XN0/QV
いつまで続けんの?
956デフォルトの名無しさん
垢版 |
2017/10/09(月) 18:20:54.51ID:qEhozSMZ
>>953
ユーザーが改変できるってさっきから指摘してるんたが?
逃げずにはやく答えてみろよ?
2017/10/09(月) 18:22:18.03ID:c41RoAYB
実にくだらない
2017/10/09(月) 18:24:21.88ID:r14Jr9yH
>>948
要するに、「デコーダー」側がハッカーと正規ユーザーを区別できなきゃ安全でも何でもないよね
2017/10/09(月) 18:24:23.29ID:CACjh+QN
>>956
まだ気づいてないのか?

よーく考えてみたら?
条件というか設定が間違ってる

それはBからAに送信するときの暗号化の話だから問題が逆
それにユーザーがコード改変して暗号化前に情報変えるのは無関係だろ
2017/10/09(月) 18:25:26.98ID:c41RoAYB
例えば>>959の文章でいうと

>まだ気づいてないのか?
>
>よーく考えてみたら?

の部分が不要
961デフォルトの名無しさん
垢版 |
2017/10/09(月) 18:32:17.71ID:qEhozSMZ
>>959
気付いてないのはお前の方だろバカ
ユーザーの元に秘密鍵があれば改変したデータを作って利用できるだろ
2017/10/09(月) 18:34:29.22ID:c41RoAYB
>>961
>気付いてないのはお前の方だろバカ
不要
2017/10/09(月) 18:34:41.77ID:CsWYGxTc
>>951
今度はその一時的な鍵をサーバーとBの間でどうやって安全に交換するかって問題に帰着すると思うが。
2017/10/09(月) 18:36:12.76ID:T0povuKJ
>>958
全然要されてない
要するなら利用者がハッカーだとしてもこのやり方なら安全ってこと
2017/10/09(月) 18:37:34.88ID:CACjh+QN
やっぱり馬鹿の壁だな
理解できない相手に正論を言っても無駄
2017/10/09(月) 18:37:45.93ID:UEIAYP2F
>>961
> 気付いてないのはお前の方だろバカ
お前だよ w

> ユーザーの元に秘密鍵があれば改変したデータを作って利用できるだろ
ちゃんと質問者のレス読めよ
>>890
> アプリAで暗号化、アプリBで復号化、他者はBしか持っていないという状況
2017/10/09(月) 18:38:21.65ID:zWF+LHai
今日の赤IDは全部NGで問題ない
2017/10/09(月) 18:38:55.70ID:T0povuKJ
>>963
公開鍵を使うに決まってるだろ・・・
2017/10/09(月) 18:39:34.24ID:c41RoAYB
>>965
>やっぱり馬鹿の壁だな
>理解できない相手に正論を言っても無駄

不要
2017/10/09(月) 18:40:11.30ID:CACjh+QN
公開鍵と秘密鍵についてよくわかってないのが多いな

httpsじゃダメだって言うんだろうな
怖い怖い
2017/10/09(月) 18:41:35.96ID:oNj7uBjL
>>938
同じ鍵で解読できる暗号が2種類あった場合、利用者に複合鍵を渡すと両方解読されてしまう
サーバーで複合すればユーザー情報に基づいてひとつだけ解読可能みたいなこともできる

あと、ローカルでの解読と違ってサーバーに不正アクセスするのは犯罪になるという障壁もある
972デフォルトの名無しさん
垢版 |
2017/10/09(月) 18:42:38.62ID:qEhozSMZ
>>966
はあ?
他者がBを持ってそのBに秘密鍵を置くなんてもってのほかだぞ?お前もバカか
2017/10/09(月) 18:43:23.56ID:c41RoAYB
>>972
>はあ?
>お前もバカか

不要
2017/10/09(月) 18:43:57.77ID:r14Jr9yH
>>964
安全じゃないでしょう。
質問者のケースの場合、暗号化されたデータをハッカーは利用可能。
要するに>>938
2017/10/09(月) 18:44:02.73ID:CACjh+QN
>>972
>>911を100回読めばいいよ

B側の秘密鍵は利用者ごとに作るんだよ…
976デフォルトの名無しさん
垢版 |
2017/10/09(月) 18:44:41.48ID:qEhozSMZ
>>970
お前のようなバカはブラウザに秘密鍵があるんだな
怖すぎ
2017/10/09(月) 18:45:48.40ID:c41RoAYB
>>976
>お前のようなバカは

不要
2017/10/09(月) 18:46:10.47ID:CACjh+QN
頭のおかしな人のふりをして逃げ切るの術がはじまったのかよ
2017/10/09(月) 18:46:34.09ID:c41RoAYB
>>975
>100回

不要
2017/10/09(月) 18:46:51.21ID:c41RoAYB
>>978
>頭のおかしな人のふりをして逃げ切るの術がはじまったのかよ

不要
2017/10/09(月) 18:47:42.62ID:T0povuKJ
>>974
全然違うって
> この分野全然知らんけど
知らないなら理解しよう
2017/10/09(月) 18:48:15.79ID:CsWYGxTc
>>968
それじゃサーバー=Aと本質的に変わってなくて単に余計な経路を追加しただけ。
2017/10/09(月) 18:51:07.76ID:CACjh+QN
仕組み

サーバとクライアントで別々の鍵ペア(秘密鍵、公開鍵)を作ってお互いに
公開鍵を渡す
ネットを通すときは相手からもらった公開鍵で暗号化
受け取った側は自分の秘密鍵で解読

秘密鍵はネットを通らないので間で傍受されても普通は暗号解読不能
2017/10/09(月) 18:51:39.28ID:T0povuKJ
>>982
Aと他者が使うBが常時やり取りできるならサーバーである必要もないとは言ってるし
そもそも安全な暗号化する鍵の保存についての答えだが
985デフォルトの名無しさん
垢版 |
2017/10/09(月) 18:53:53.42ID:qEhozSMZ
>>975
だから利用者側に秘密鍵があれば利用者が改変したデータを作れてしまうだろ
まだ理解出来ないの??
2017/10/09(月) 18:55:21.55ID:c41RoAYB
>>985
>まだ理解出来ないの??

議論に不要な記述
2017/10/09(月) 18:55:41.00ID:CACjh+QN
>>985
秘密鍵関係なく暗号化前のデータを変えれば意味ないでしょって言ってるんだけど

暗号化したらユーザーがデータを変えられないと思ってるなら間違い
2017/10/09(月) 18:58:23.22ID:CACjh+QN
つかれた
秘密鍵は何度も言ってるけど暗号解除のための鍵

プログラムBが秘密カギを持ってるとするとプログラムAからのデータを受け取るときの
暗号解除のため
だからユーザーがデータを書き換えるとかそういうのは違う
2017/10/09(月) 18:58:38.89ID:r14Jr9yH
うーん、繰り返しになるけど、質問者のケースは別人の間の通信じゃないので鍵をペアにする意味なんかないですよw

問題はどうやったら正規ユーザーだけが利用できる「復号化装置」を確保きるかって話。

「復号化装置」を外だししたら安全だって話は普通に正しくないでしょう。
そんなのハッキングする側から見たら「ほんのひと手間」増えるだけ。
2017/10/09(月) 18:58:51.90ID:Y4203ffV
次スレ立ててくる
991デフォルトの名無しさん
垢版 |
2017/10/09(月) 18:59:20.58ID:qEhozSMZ
>>987
秘密鍵が手元にあれば改変した偽のデータを作ってそれをアプリで使えてしまうだろ
まだわからないの?
2017/10/09(月) 18:59:55.87ID:c41RoAYB
>>991
>まだわからないの?

議論に不要な記述
2017/10/09(月) 19:00:37.82ID:CACjh+QN
>>989
>>890
2017/10/09(月) 19:00:38.05ID:T0povuKJ
>>989
質問者はBは他者が持ってるって言ってるけど
2017/10/09(月) 19:01:17.45ID:CACjh+QN
>>991
>>988
2017/10/09(月) 19:01:39.15ID:Y4203ffV

ふらっと C#,C♯,C#(初心者用) Part132
http://mevius.2ch.net/test/read.cgi/tech/1507543256/
2017/10/09(月) 19:01:59.72ID:CACjh+QN
>>996
おつ
998デフォルトの名無しさん
垢版 |
2017/10/09(月) 19:02:26.16ID:qEhozSMZ
>>995
だからそれは間違ってるって言ってらだろバカ
レス数が950を超えています。1000を超えると書き込みができなくなります。