X



トップページ運用情報
1001コメント282KB

【堅牢】トリップの新方式を考えてみませんか【互換性】

■ このスレッドは過去ログ倉庫に格納されています
0001NAO ★
垢版 |
2009/06/15(月) 00:38:24ID:???0
現段階でのトリップの問題点などを考えつつ、
現行方式よりも堅牢なトリップの方式を考えてみませんか。

マルチバイト文字問題や互換性などの問題も出てくると思いますが、
そこは皆で妙案を出し合いつつ、新たな方式を頑張って考えてみましょう。


関係スレ
 幸せサーバープロジェクト 「アイデア・技術のある人募集中」★3
 http://qb5.2ch.net/test/read.cgi/operate/1241361889/
0257ドアー ◆VIPDOORD4s
垢版 |
2009/06/17(水) 16:37:34ID:BGRWsuPc0?DIA(137777)
>>254
やはり、、、
何をされるかわからないから、頼めないですねw

Beプロフでは出せないトリップがあって、これをきっかけに
仕様変更出来ないかと思ったのですが。。。
0261 ◆TWARamEjuA
垢版 |
2009/06/17(水) 20:50:34ID:khqxoJ5t0?BRZ(10072)
>>260
Boo2008ばぁぢょん。
sub Make_Trip{
# 仕様変更? @2009/06/16
my $key = shift;
($key) = $key =~ /^#(.+)/;
if (length $key >= 12){
if (substr($key, 0, 1) eq '$'){
# 将来の拡張用
$key = '???';
}
elsif ($key =~ m|^#([[:xdigit:]]{16})([./0-9A-Za-z]{0,2})$|){
$key = substr crypt(pack('H*', $1), "$2.."), -10;
}
else {
$key = substr sha1_base64($key), 0, 12;
}
}
else {
# 従来形式
my $salt = substr($key, , 1) . "H";
$salt =~ tr|x3A-x40x5B-x60x00-x2Dx7B-xFF|A-Ga-f.|; # 仕様変更 @2003/11/15
$key = substr crypt($key, $salt), -10;
}
return "◆$key";
}
0263 ◆TWARamEjuA
垢版 |
2009/06/17(水) 22:07:04ID:khqxoJ5t0?BRZ(10072)
>>261
ちょと修正。
sub Make_Trip{
# 仕様変更? @2009/06/17
my $key = shift;
my $salt;
($key) = $key =~ /^#(.+)/;

# 12文字以上ある時に新式採用
if (length $key >= 12){
if (index($key, '$', 0) == 0){
# 将来の拡張用
$key = '???';
}
# 塩付きkey
elsif (($key, $salt) = $key =~ m|^([[:xdigit:]]{16})([./0-9A-Za-z]{0,2})$|){
$key = substr crypt(pack('H*', $key), "$salt.."), -10;
}
# そのままkey
else {
$key = substr sha1_base64($key), 0, 12;
# $key =~ tr/+/./;
}
}
else {
# 従来形式
$salt = substr($key, , 1) . "H";
$salt =~ tr|x3A-x40x5B-x60x00-x2Dx7B-xFF|A-Ga-f.|; # 仕様変更 @2003/11/15
$key = substr crypt($key, $salt), -10;
}
return "◆$key";
}

もすかして、、、
$key = substr sha1_base64($key), 0, 12;
先頭からだと何入れても変化無し?
0266動け動けウゴウゴ2ちゃんねる
垢版 |
2009/06/17(水) 22:24:44ID:Scux9NcH0
「痴漢処理が適応」って変か
分離する処理が従来形式にも適応されてトリップ変わっちゃうのはどうなのかな
0267◆SUAMA.PJ12
垢版 |
2009/06/17(水) 22:29:55ID:iLeC8Ub+P?PLT(21072)
>>266
それってまずいですよね
今までの資産がいくらか電子のもずくになっちゃいます

置換処理を除外するのは新方式で、
現行方式の場合は生キーを使えるようにするって話じゃなかったかしらん?
0268NAO ★
垢版 |
2009/06/17(水) 22:39:34ID:???0
>>234
AESがインスコできなかったので

>6bitで区切れば(ry
本当は間にもう1つ入れる心算だったんですが、
何をする心算だったのかのメモをなくしたのであのままです。

>>236
>crypt()というのは、その筋の方がわくわくするロジックでは
私も自分で書いてて、そこで萎えました

---

まあ、私のは多分採用されないので(ry
0269 ◆cZfSunOs.U
垢版 |
2009/06/17(水) 22:51:27ID:7uVQE2vr0
>>265 bbs.cgi 内部では $handle_pass というのは # を抜いたものになってます.


>>266-267 そのあたりを突き詰めると,結構難しいんですよね.
< や > の置換処理なんかはまず不変でしょうけど,例えば

    $GB->{FORM}->{'FROM'} =~ s/山崎渉/fusianasan/g;

これは山崎渉事件以降追加された処理だと思いますが,
これによって完全な一貫性はすでに失われていますし,
そしてこのような NG ワードの追加は今後も起こりうることなので......
0270◆SUAMA.PJ12
垢版 |
2009/06/17(水) 23:16:27ID:iLeC8Ub+P?PLT(21072)
「#山崎渉」は「#fusianasan」になってしまうのがデフォなのですか。
0271Cooks
垢版 |
2009/06/17(水) 23:17:44ID:RLbD7Llb0?DIA(101234)
トリップ生成のタイミングって変えれないんですか
0273 ◆TWARamEjuA
垢版 |
2009/06/17(水) 23:26:57ID:khqxoJ5t0?BRZ(10072)
どうにでもなるんじゃないかな?
($GB->{FORM}->{TRIP}, $GB->{FORM}->{FROM}) = $GB->{FORM}->{'FROM'} =~ /^(.+)#(#?.+)$/;
初っぱなにこうしておけば。。。

・・・って甘いのかしら?
0274 ◆TWARamEjuA
垢版 |
2009/06/17(水) 23:30:53ID:khqxoJ5t0?BRZ(10072)
あと、、、
$key = substr sha1_base64($key), 0, 12;
$key =~ tr/+/./; ←これしちゃうのはいくないのかな?
0275 ◆cZfSunOs.U
垢版 |
2009/06/17(水) 23:32:31ID:7uVQE2vr0
新たなコードではトリップ部分の置換処理をスルーしていますが,
それによって(置換処理が行われていた)従来のものと一貫性が失われる
ということを >>266-267 では指摘しているのではないかと.


>>274 入れてみますか......
0276動け動けウゴウゴ2ちゃんねる
垢版 |
2009/06/17(水) 23:35:39ID:QrCXwhVgP
過去の糞コードが足を引っ張る典型だな
作り直したい衝動に駆られるけど許されないという・・・
実際そんな仕事ばっかりやってるけどw
0277 ◆No1111111k
垢版 |
2009/06/17(水) 23:37:24ID:oNT9OINd0?DIA(111500)
< が &lt; に置き換わることなどを知ってれば
利用者側で対処可能です。
逆に、そこまでして残さないといけない仕様ですか?
今こそキレイにしておく箇所じゃないかと私は考えます。

2ちゃんねる文字化け対策
http://www.geocities.jp/trip_chaser/2ch_mojibake.html

2chトリップ仕様(私の書きかけ)
http://sourceforge.jp/projects/naniya/wiki/2chtrip

このへんは検索人が苦労してきた部分でもあるため、こだわりがあるんですよ…
0278 ◆TWARamEjuA
垢版 |
2009/06/17(水) 23:37:35ID:khqxoJ5t0?BRZ(10072)
>>275
ふむふむ。逆のことかぁ。。。

それは大変ですねぇ。わははー
でも良いと思うです。10周年ですし(´ー`)
0280 ◆TWARamEjuA
垢版 |
2009/06/17(水) 23:41:00ID:khqxoJ5t0?BRZ(10072)
tr/+/./ 入れますた.@Boo2008

トリップテスト広場になっている、、、Boo2008
0281 ◆No1111111k
垢版 |
2009/06/17(水) 23:41:26ID:oNT9OINd0?DIA(111500)
書き忘れ。

置換に関する仕様変更については、
現トリップにおいては、生キー指定が実装されてれば
致命的な問題はなくなります。

しかし、
・現仕様の置換処理を残しつつ
・さらに置換文字列を追加する
ようなケースが発生しうることを鑑みると、
2chが死滅するまで禍根を残す問題となり得ます。
0284動け動けウゴウゴ2ちゃんねる
垢版 |
2009/06/18(木) 00:28:04ID:lTILoOil0?2BP(3434)
>>268
ついうっかりPerlにしてみました。
ttp://senji.xrea.jp/naotrip_pl.txt >>223通りに動くかどうかもわからないエンバグしてそうなもの
ttp://senji.xrea.jp/float_php.txt FreeBSD(64)とWin(32)で違うトリップが生成されて悲しくなったので

>>269
コード読み返せば # を抜いてあることぐらい気づきそうなものを、と自分で感じているところです。
0288ののたん ◆J.........
垢版 |
2009/06/18(木) 23:14:07ID:TYaUIVhA0
なにもレスがないということは sha1_base64 でファイナルアンサー?
決定しだいトリッパーを対応させ(r
0290動け動けウゴウゴ2ちゃんねる
垢版 |
2009/06/18(木) 23:46:56ID:0V2VPmpy0
SHA1の20Byte中先頭9ByteのB64って
従来式と比べて衝突増えるんだか減るんだかどうなの?

sports2はサニタイズの処理も違ったりするし、0x80問題も修正された方が
良いと思うし>>281には同意
0292ののたん ◆J.........
垢版 |
2009/06/19(金) 01:00:46ID:h5VlGPCA0
降らぬなら降らせて見せようほととぎす。
DES っつか現行トリップについてはいろいろ詳しいが、
SHA-1 はよく知らん。




ごめんなさい、見栄はりました。
全然知らないです。(。・ω・。)
0293動け動けウゴウゴ2ちゃんねる
垢版 |
2009/06/19(金) 01:26:56ID:hJ0OpbgCP
現行の10桁トリップは28京8230兆とおりの種類があり(64^9×16)、キーは1〜8byte。
SHA1を使う12桁トリップは47垓2236京6482兆とおりの種類があり(64^12)、キーは
12byte〜板の設定上限まで。

トリップのダブりに関してどーゆー計算をすればいいのかわかんないや。
出現するトリップの種類は1万6384倍多くなって、12byte未満のキーではないことが
保証される12桁トリップはなんとなくよさげに見えるす。
0294動け動けウゴウゴ2ちゃんねる
垢版 |
2009/06/19(金) 01:37:27ID:slAjn/nW0?PLT(89004)
BBS_NAME_COUNTに依存するbyte数って事ですかいな。

しかし##757375626F6E0000suでも呪いがかかってるのねぇ、、、
tripにした時点で呪い判定してるのかぁ、恐るべし呪い。
0296 ◆jn/.//S44.
垢版 |
2009/06/19(金) 01:59:52ID:hJ0OpbgCP
>>294
んだす。覚えやすくて十分に長いキーを使うようになったのに、違う板に行ったら
ハネられたという悲劇も生まれそう。てか、それはキーが永杉?

DESを使う現行方式で、キーに256種類すべてのキャラが使えるとすると(すいません、
よく知らないんです)、データの間引きによって同じトリップが出現するキーは64種類
あるのかな。
ハッシュ関数を使うと、データの間引き+コリジョンがダブりの原因になるんでしょけど、
これらがどれくらいの影響を及ぼすのかわかりませんねん灸。
0297 ◆TWARamEjuA
垢版 |
2009/06/19(金) 02:00:33ID:X6jA55SI0?BRZ(10072)
もしかしてIDもおもしろい?のにとかとか。
上位4桁->host名の後ろから10文字とかocn.ne.jpのところから採取->MD5
下位4桁->IPアドレスから採取->MD5
/dev/random->MD5

識別子

#おまいOCNだろ!?なぁんて会話が飛び交ったり。。。

もう眠ろう。。。
0301 ◆cZfSunOs.U
垢版 |
2009/06/19(金) 05:51:00ID:MLNb4KfK0
BBS_NAME_COUNT は変換後の名前の長さに適用されるので,
変換前の長さには適用されません.とりあえず,
トリップキーの長さには 1024 というハードリミットを設けてあります.

まぁ,特に大きな異論がなければ,今のやつでぼちぼちいってみますかね......
0303 ◆cZfSunOs.U
垢版 |
2009/06/19(金) 08:08:08ID:MLNb4KfK0
>>302 12桁以上の「#$〜」形式は,今後また別のアルゴリズム等を
導入したくなった時などに利用することを想定しています.
ネタで ??? を出すだけならいいですが,本気で使うトリップに
現時点では「#$〜」形式を用いないように,という意図ですね.
0305ののたん ◆9666666666
垢版 |
2009/06/19(金) 08:50:40ID:h5VlGPCA0
>>303
今使ってる人は、キーの一文字目を晒してしまう(のと同じ)ことになっちゃうけど
あきらめてもらいましょう、うんうん。
(置き換えりゃいいじゃんという的外れなレス禁止w)
0306 ◆cZfSunOs.U
垢版 |
2009/06/19(金) 08:53:40ID:MLNb4KfK0
>>305 12桁未満なら「#$〜」でも従来通りなので,
わざわざ冗長なキーを使ってる人でない限り影響はないかと.
0309 ◆cZfSunOs.U
垢版 |
2009/06/19(金) 11:46:10ID:MLNb4KfK0
生キー指定以外の12桁以上「##〜」形式も将来の拡張用にしておきましょう.
で,まとめ:

    if (length $handle_pass >= 12)
    {
        my $mark = substr($handle_pass, 0, 1);
        if ($mark eq '#' || $mark eq '$')
        {
            if ($handle_pass =~ m|^#([[:xdigit:]]{16})([./0-9A-Za-z]{0,2})$|)
            {
                $GB->{TRIPSTRING} = substr(crypt(pack('H*', $1), "$2.."), -10);
            }
            else
            {
                # 将来の拡張用
                $GB->{TRIPSTRING} = '???';
            }
        }
        else
        {
            use Digest::SHA1 qw(sha1_base64);
            $GB->{TRIPSTRING} = substr(sha1_base64($handle_pass), 0, 12);
            $GB->{TRIPSTRING} =~ tr/+/./;
        }
    }
    else
    {
        # 従来形式
    }

・ 従来はトリップキーも含め <> や NG ワード等の置換処理が行われていたが,それをスルーするようにした.
・ キーの長さが 1024 桁を超えるとエラー.
0310 ◆???
垢版 |
2009/06/19(金) 12:13:14ID:MLNb4KfK0
さてさて......全鯖配布しました.
0311root▲▲ ★
垢版 |
2009/06/19(金) 12:16:25ID:???0
おつです。>>310

しかし ◆??? は見慣れないなぁ。
ようは「reserved」ってことなわけですが、変な単語より ??? の方がいいのかもですね。
0312 ◆???
垢版 |
2009/06/19(金) 12:18:57ID:slAjn/nW0?PLT(89004)
キタ━━━━━━( ゚∀゚)y━━━━━━┛~~ !!!
0313ののたん ◆333333333U
垢版 |
2009/06/19(金) 12:19:45ID:h5VlGPCA0
>>310
え?した?過去形?

・・・・・・・・・・・。




いやっほぉぉぉぉーーー!
0314 ◆???
垢版 |
2009/06/19(金) 12:20:56ID:JMgHleNQP
マジでえええええ!

イヤッッホォォォオオォオウ!
0315 ◆???
垢版 |
2009/06/19(金) 12:21:48ID:duNDnVSM0
これは ◆fusianasan でもいいのかもしれない
0319 ◆???
垢版 |
2009/06/19(金) 12:35:02ID:slAjn/nW0?PLT(89004)
>>309
ん?そのままだと#$+11桁でも???になりませんかいな?
$を含めて12桁って事?
0320 ◆/Aa0MqaSovnI
垢版 |
2009/06/19(金) 12:37:43ID:mNJDtopX0
クッキーを食べてない状態で書き込むと
トリップが出なかった
0321 ◆cZfSunOs.U
垢版 |
2009/06/19(金) 12:38:57ID:MLNb4KfK0
>>319 はい,キー自体の長さってことですね.
0322root▲▲ ★
垢版 |
2009/06/19(金) 12:40:29ID:???0?DIA(102777)
>>309 に基づくトリップの新仕様をまとめてみた。
これであっているかどうか、チェックよろしくです。

1. #(12文字以上) 新仕様発動、 #11文字以下 は従来通り

1) そのうえで ## #$ は特別な意味を持つ
1a)
- ##(8文字分の16進ASCIIコード) で、「ASCIIコードによる直接入力」により文字列を設定可能
- ##(8文字分の16進ASCIIコード)(0〜2桁のsalt) とすることにより、saltをも設定可能
- 上記では「従来アルゴリズム」により、10桁のトリップを生成
1b)
- #$ は将来の拡張のために予約、現在は何を指定しても ◆??? 表示

2) 上記以外の #12文字 では「新アルゴリズム」により、12桁のトリップを生成
0324root▲▲ ★
垢版 |
2009/06/19(金) 12:44:41ID:???0?DIA(102777)
>>322
ちょっと直した。

1. #(12文字以上) で新仕様発動、 #(11文字以下) は従来通り

1) そのうえで ## #$ は特別な意味を持つ
1a)
- ##(8文字分の16進ASCIIコード) で、「ASCIIコードによる直接入力」により文字列を設定可能
- ##(8文字分の16進ASCIIコード)(0〜2桁のsalt) とすることにより、saltをも設定可能
- 上記では「従来アルゴリズム」により、10桁のトリップを生成
- 上記以外の ## は将来の拡張のために予約、現在は何を指定しても ◆??? 表示
1b)
- #$ は将来の拡張のために予約、現在は何を指定しても ◆??? 表示

2) 上記以外の #12文字 では「新アルゴリズム」により、12桁のトリップを生成
0325 ◆/Aa0MqaSovnI
垢版 |
2009/06/19(金) 12:44:42ID:mNJDtopX0
12文字以上になっても
やっぱりキーに2バイトの文字は使わないほうがいいのだろうか
0326天啓っ…! ◆KKKKkKkkkk
垢版 |
2009/06/19(金) 12:46:25ID:HyujGnmW0?2BP(50)
ぎゃああああああああああああああああ!!!!!!!
俺の10×kトリップがああああああああああああああ!!!!!!!!!!!!
死ね!死ね!
0327root▲▲ ★
垢版 |
2009/06/19(金) 12:47:27ID:???0?DIA(102777)
さらに修正。

1. #(12文字以上) で新仕様発動、 #(11文字以下) は従来通り

1) そのうえで ## #$ は特別な意味を持つ
1a)
- ##(8文字分の16進ASCIIコード) で、「ASCIIコードによる直接入力」により文字列を設定可能
- ##(8文字分の16進ASCIIコード)(0〜2桁のsalt) とすることにより、saltをも設定可能
- 上記では「従来アルゴリズム」により、10桁のトリップを生成
- 上記以外の ## は将来の拡張のために予約、現在は何を指定しても ◆??? 表示
1b)
- #$ は将来の拡張のために予約、現在は何を指定しても ◆??? 表示

2) 上記以外の #12文字以上 では「新ャAルゴリズム」bノより、12桁のャgリップを生成

3) # の後は1024文字まで指定可能
0331(゚谷゚)掛布 ◆KnnNncvI6iUY
垢版 |
2009/06/19(金) 12:49:06ID:Sts7rbWc0
鳥変わったんだけど仕様がかわったの?
0333動け動けウゴウゴ2ちゃんねる
垢版 |
2009/06/19(金) 12:50:11ID:AunUK2oz0
8文字キーの後ろにトリップメモっておいたのに、、まあしゃーねーか
0335 ◆/Aa0MqaSovnI
垢版 |
2009/06/19(金) 12:52:53ID:mNJDtopX0
>>334
それまで使ってたトリップのキーを
半角8文字に縮めればいい

例えば
#01234567890123456789
だったら
#01234567
にすればいい
0336root▲▲ ★
垢版 |
2009/06/19(金) 12:53:46ID:???0?DIA(102777)
で、
・1a) は「トリップジャンキー」な人向けの「神トリップ検索用仕様」
・2) は、従来のものよりもちょっぴり割られにくくなった新仕様

ということでいいのかな。
0338動け動けウゴウゴ2ちゃんねる
垢版 |
2009/06/19(金) 12:54:53ID:AunUK2oz0
いいともー
0342root▲▲ ★
垢版 |
2009/06/19(金) 12:57:24ID:???0?DIA(102777)
>>327 は #$ の記述がちと紛らわしいな。
これでいい気がする。

1. #(12文字以上) で新仕様発動、 #(11文字以下) は従来通り

1) そのうえで ## #$ は特別な意味を持つ
1a)
- ##(8文字分の16進ASCIIコード) で、「ASCIIコードによる直接入力」により文字列を設定可能
- ##(8文字分の16進ASCIIコード)(0〜2桁のsalt) とすることにより、saltをも設定可能
- 上記では「従来アルゴリズム」により、10桁のトリップを生成
- 上記以外の ##(11文字以上) は将来の拡張のために予約、現在は何を指定しても ◆??? 表示
1b)
- #$(11文字以上) は将来の拡張のために予約、現在は何を指定しても ◆??? 表示

2) 上記以外の #(12文字以上) では「新アルゴリズム」により、12桁のトリップを生成

3) # の後は1024文字まで指定可能
0344 ◆???
垢版 |
2009/06/19(金) 12:58:43ID:AunUK2oz0
5回くらいそれ出した
0345root▲▲ ★
垢版 |
2009/06/19(金) 12:58:47ID:???0?DIA(102777)
ふむ。いろいろ書いたけど >>342 でよさげかな。

そろそろ午後の本業の時間。
0346ののたん ◆G222222222
垢版 |
2009/06/19(金) 13:01:08ID:h5VlGPCA0
>>336
ちょっぴりどころじゃなく、現実問題として現時点では割られるなんてありえないぐらいでっす。
超高速な対応トリッパーもないですから。

単語をキーにしてたりとかそんなのは論外ですが。
0352動け動けウゴウゴ2ちゃんねる
垢版 |
2009/06/19(金) 13:16:16ID:bgXqg9KD0
#に続けて1〜1024文字を入力するとトリップに変換される

"#1〜11文字"で従来の10桁トリップ("##16進8桁の10進表示とsalt2桁"でも指定できる)
"#12〜1024文字"では12桁の新型トリップが発生
"##12文字以上"と"#$12文字以上"は未定義として◆???に変換

つまり
#abcd1234XYZ   → 従来トリップ10桁
##DEADBEEF00 → 従来トリップ10桁
#abcd1234WXYZ → 新トリップ12桁

##hogehogehogehoge → ◆???
#$hogehogehogehoge → ◆???

これでおk?
0353 ◆???
垢版 |
2009/06/19(金) 13:17:10ID:1+9ewEiq0
どれ
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況