Discuss Scratch
- RITORUDX3
-
27 posts
セーブコードについてみんなで話し合う場所1
自分は新鉱石採掘クリッカーにて一回セーブコードを作っています。これってちゃんと暗号化されてますかね…?(リンクは少々お待ちください) リンク→ https://scratch-mit-edu.ezproxyberklee.flo.org/projects/211977662/
Last edited by RITORUDX3 (Oct. 12, 2019 04:38:39)
- RITORUDX3
-
27 posts
セーブコードについてみんなで話し合う場所1
間違えて返信したので削除
Last edited by RITORUDX3 (Oct. 12, 2019 04:38:31)
- choriss55
-
100+ posts
セーブコードについてみんなで話し合う場所1
削除。1000超えてからにしよう
Last edited by choriss55 (Oct. 12, 2019 11:54:40)
- sypu
-
500+ posts
セーブコードについてみんなで話し合う場所1
もうすこし発展してからのほうがいいと思います。
スティッキートピックは、「みんなが活用できる」トピックが前提です。
分かってると思いますが、申請したところで「必ず」スティッキートピックにしてもらえるわけではありません。
スティッキートピックは、「みんなが活用できる」トピックが前提です。
分かってると思いますが、申請したところで「必ず」スティッキートピックにしてもらえるわけではありません。
Last edited by sypu (Oct. 12, 2019 11:32:03)
- matunyan0930
-
500+ posts
セーブコードについてみんなで話し合う場所1
例えばですが、「Scratch3.0への提案」というトピックは、
公共性は高いはずですがstickyにはなっていません。
トピックメンバーが誰も申請しなかっただけというのもあり得ますが、
まぁどうにせよそんな簡単にstickyにはなりませんしできませんかと。
Stickyは「大量にあるトピックの中で重要なトピックを埋もれさせないように」という意味を持っています。
そんなstickyが多く出てきて、stickyの中だけで考えても埋もれてくるトピックが出てくるのは、果たして良いことでしょうか?
公共性は高いはずですがstickyにはなっていません。
トピックメンバーが誰も申請しなかっただけというのもあり得ますが、
まぁどうにせよそんな簡単にstickyにはなりませんしできませんかと。
Stickyは「大量にあるトピックの中で重要なトピックを埋もれさせないように」という意味を持っています。
そんなstickyが多く出てきて、stickyの中だけで考えても埋もれてくるトピックが出てくるのは、果たして良いことでしょうか?
Last edited by matunyan0930 (Oct. 12, 2019 11:52:29)
- NT_ZZzz
-
100+ posts
セーブコードについてみんなで話し合う場所1
暗号ではあるけど次のような理由から読むのは簡単ですね 自分は新鉱石採掘クリッカーにて一回セーブコードを作っています。これってちゃんと暗号化されてますかね購入のNo.5と変数“新惑星”とかはセーブしなくていいの?
どちらかというと復元のしやすさを優先しているように見えます
- 数字を文字と一対一対応させて変換する
- OとXが変数“購入状況”に一対一で対応している
- 区切りが_(アンダーバー)で一定である
ちなみに文字と数字を一対一対応するなら
変換用の文字をリストに入れて
(( [list v] )の () 番目 :: list)と
(([list v] )中の[]の場所 :: list)を使うとif~else入れ子を使わずにより簡単にプログラムを組めますよ
- yukku
-
1000+ posts
セーブコードについてみんなで話し合う場所1
セーブコードを改造するチートの一種ができやすくなってしまうからです。 なんでセーブコードって暗号化するの?
- matunyan0930
-
500+ posts
セーブコードについてみんなで話し合う場所1
例えば、HP100 MP50 お金600 の状態でセーブをしたとき、 なんでセーブコードって暗号化するの?
100/50/600のようにセーブコードにするとします。
ロードするときに、これをそのまま入力すれば、同じ状態から再開できるわけです。
しかし、数値を見て、どの場所にある数値が何のステータスか大体予想できませんか?
そこで、ロードするときに、
500/500/10000と入力してみましょう。
プログラムは、これが改ざんされた数値かを検出できないので、そのままロードします。
ずるができるわけです。
それを阻止するために、セーブコードを出力するときに暗号化して、どこがどのステータスに対応しているかわからなくするのが暗号化です。
- choriss55
-
100+ posts
セーブコードについてみんなで話し合う場所1
NEUTRALBCDFGHIJKMOPQSVWXYZ
1234567890,
で振り分けして
2019,10,13,を暗号化して
1234567890,
で振り分けして
2019,10,13,を暗号化して
EDNCFNDFNUFという風に暗号化すれば中を見られない限りハックされにくい
- RITORUDX3
-
27 posts
セーブコードについてみんなで話し合う場所1
ありがとうございます!次から使ってみます…暗号ではあるけど次のような理由から読むのは簡単ですね 自分は新鉱石採掘クリッカーにて一回セーブコードを作っています。これってちゃんと暗号化されてますかね購入のNo.5と変数“新惑星”とかはセーブしなくていいの?
どちらかというと復元のしやすさを優先しているように見えますまあ読むような人は少ないでしょうけど…!@$(%'&_!@$(%'&_!@$(%'&_!@$(%'&_!@$(%'&_!@$(%'&_$_!_@_OOOOOO_!@$(%'&_!@$(%'&_
- 数字を文字と一対一対応させて変換する
- OとXが変数“購入状況”に一対一で対応している
- 区切りが_(アンダーバー)で一定である
ちなみに文字と数字を一対一対応するなら
変換用の文字をリストに入れて(( [list v] )の () 番目 :: list)と(([list v] )中の[]の場所 :: list)を使うとif~else入れ子を使わずにより簡単にプログラムを組めますよ
指摘してもらった点も直しましたありがとうございます
Last edited by RITORUDX3 (Oct. 13, 2019 04:21:27)
- choriss55
-
100+ posts
セーブコードについてみんなで話し合う場所1
HZIDEVSKMBOCGTQWAPYFRXULJN(ランダム) NEUTRALBCDFGHIJKMOPQSVWXYZ
1234567890,
で振り分けして
2019,10,13,を暗号化してEDNCFNDFNUFという風に暗号化すれば中を見られない限りハックされにくい
1234567890,
で
2019,10,14,19,33,12
を
ZBHMOHBOHDOHMOIIOHZに変換すれば読むのは難しい
- NT_ZZzz
-
100+ posts
セーブコードについてみんなで話し合う場所1
自動で復号するプログラムが公開されている以上「中を見る」でも解けないような暗号は作成できないと思います
そもそも
強いて言うなら工程を増やして分かりづらくするぐらいはできるかもしれません
ところでこのトピックの目標として「用途別最強のセーブコード作成プログラム」とか作ってみませんか?
そこまで極める必要もなさそうだけども
そもそも
- 中を見る
- 変数をいじる
- セーブコードを作成
強いて言うなら工程を増やして分かりづらくするぐらいはできるかもしれません
ところでこのトピックの目標として「用途別最強のセーブコード作成プログラム」とか作ってみませんか?
そこまで極める必要もなさそうだけども
Last edited by NT_ZZzz (Oct. 14, 2019 14:32:34)
- inoking
-
1000+ posts
セーブコードについてみんなで話し合う場所1
クラウド変数を使えば変数をいじるようなチートは不可能にできますね。
エディター画面で操作してもクラウド変数は更新されませんので。
クラウド変数を更新できない状態(中を見た状態)では
セーブコードを出力しないようにするとか。
エディター画面で操作してもクラウド変数は更新されませんので。
クラウド変数を更新できない状態(中を見た状態)では
セーブコードを出力しないようにするとか。
- NT_ZZzz
-
100+ posts
セーブコードについてみんなで話し合う場所1
そんな方法もできるんですか!それなら「中を見る」にも対抗できそうですね。 クラウド変数を使えば変数をいじるようなチートは不可能にできますね。
ただ具体的な方法が全く思いつきません。
「作品を開いている間に別のアカウントがクラウド変数を操作すること」をセーブコード出力の条件に入れると
Scratcherが一人しか作品を見ていない状態ではセーブできないようになってしまいますし、
その条件をつけないと中を見てもセーブが出来てしまいます。
クラウドデータにセーブ情報をユーザー名と紐付けして記録すればいい(もはや別案)
- jun50
-
1000+ posts
セーブコードについてみんなで話し合う場所1
「中を見る」を使えばセーブ時のチートを防ぐことはできるでしょうが、
ロード時のセーブコードをプログラムを見ながらいじられると対策は無理だと思います。
オンライン対戦などで完全にチートを取り締まり、かつデータを保存したいなら、クラウドに保存するなどの方法(だいこんさんのみたいなやつ)をとればこの方法を使ったチートをすることは100%不可能になります。(セーブコードじゃなくなってる)
ロード時のセーブコードをプログラムを見ながらいじられると対策は無理だと思います。
オンライン対戦などで完全にチートを取り締まり、かつデータを保存したいなら、クラウドに保存するなどの方法(だいこんさんのみたいなやつ)をとればこの方法を使ったチートをすることは100%不可能になります。(セーブコードじゃなくなってる)
Last edited by jun50 (Oct. 14, 2019 14:31:22)
- matunyan0930
-
500+ posts
セーブコードについてみんなで話し合う場所1
様々な問題が発生するのはよくわかっているけれど、
セーブコードとかのことを考えると、やはり「複数のプロジェクト間で共有できるクラウド変数」が欲しいと思ってしまう。
セーブコードとかのことを考えると、やはり「複数のプロジェクト間で共有できるクラウド変数」が欲しいと思ってしまう。
- inoking
-
1000+ posts
セーブコードについてみんなで話し合う場所1
ごめんなさい、私が勘違いしていた気がします。
エディタ画面でクラウド変数を操作すると
クラウド上に反映されないだけでプロジェクト内では更新されますね。確か。
ですから、
「クラウド変数を更新できない状態」はそのプロジェクト中では判断できないです。
セーブコードの何を防ぎたいかによりますが
もちろんローカルにプログラムをいじれば何でも(いきなり最強レベルで開始とかも)できます。
ロード処理をすっ飛ばして最後に結果だけをセットすればよいわけですから。
私が想定しているのは
それを公の記録とするのを防ぐことです。
であれば、クラウド変数を使えば何とかなると思います。
※容量制限は出ますが
エディタ画面でクラウド変数を操作すると
クラウド上に反映されないだけでプロジェクト内では更新されますね。確か。
ですから、
「クラウド変数を更新できない状態」はそのプロジェクト中では判断できないです。
セーブコードの何を防ぎたいかによりますが
もちろんローカルにプログラムをいじれば何でも(いきなり最強レベルで開始とかも)できます。
ロード処理をすっ飛ばして最後に結果だけをセットすればよいわけですから。
私が想定しているのは
それを公の記録とするのを防ぐことです。
であれば、クラウド変数を使えば何とかなると思います。
※容量制限は出ますが
Last edited by inoking (Oct. 14, 2019 15:29:13)