URLリクエストでトランザクションIDを投げる際どのような形式のトランザクションIDで投げるのが良いのでしょうか?

数値で投げると連番を予測されてしまうと思います。
一般的な方法や良い方法を教えてください。
数値の例)http://hoge.jp/hoge?id=12345

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2004/08/13 14:24:06
  • 終了:--

回答(3件)

id:aki73ix No.1

aki73ix回答回数5224ベストアンサー獲得回数272004/08/13 14:31:38

ポイント20pt

http://www.atmarkit.co.jp/flinux/rensai/fs04/fs04a.html

@IT:ext3とトランザクション処理(1/2)

確かに連番にすると予想されてしまいますから、数値をスクランブルしてみてはいかがでしょうか?

まず、DES暗号をかけた上で 行列演算でBitの入れ替えを行って 16進数表示してしまえば、その場で解読するのは難しいでしょう

それほど厳密でなくて良いのであれば、単純にBit演算だけで XOR、BIT交換したものを表示すればいいと思います

暗号化の要素に日付や時間を入れてTimeOutさせてやるとセキュリティ的にも強固なものが出来ると思います

数値の例)

64進数にして mime で表記するのもいいかも

id:kunitz

ありがとうございます!

2004/08/13 14:48:55
id:upride No.2

upride回答回数220ベストアンサー獲得回数12004/08/14 19:01:51

ポイント20pt

http://www.atmarkit.co.jp/aig/02security/hashfunction.html

セキュリティ用語事典[ハッシュ関数]

トランザクションID = ユニークキーということでしたら

MD5 によるハッシュではどうでしょうか?

もし言語がPHPでしたらこちらをどうぞ

標準でハッシュ関数準備されてます

id:kunitz

ありがとうございます!

2004/08/16 10:32:09
id:ohmix1 No.3

ohmix1回答回数235ベストアンサー獲得回数142004/08/16 13:08:25

ポイント20pt

http://www.atmarkit.co.jp/fsecurity/rensai/webhole03/webhole01.h...

@IT:Webアプリケーションに潜むセキュリティホール(3)

暗号化するとしても、IDが長くなければ総当りされる可能性があります。(上記URL参照)

長めハッシュ値(MD5やSHA1)を利用するのが一般的と思われます。

1.まず、ユーザID,時刻,乱数,その他固有情報から文字列を作る

2.文字列からハッシュ関数を利用してハッシュ地を生成する

3.ハッシュ値はバイナリなのでBASE64やHEXなどのエンコードで文字列に変換する

4.BASE64では/や+などの文字も使うので、さらにURLエンコードする

ハッシュ値から元の文字列には戻せないので、必要ならサーバ側で保持しておくこと

なお、具体的な言語等の指定がありませんでしたので、

一般的な参考情報を載せておきます。

参考:

http://www.verisign.co.jp/server/help/faq/110095/

MD5 から SHA1 へアルゴリズムを変更する理由は何でしょうか

「URLエンコード」

id:kunitz

ありがとうございます!

2004/08/16 13:27:40

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません