• ベストアンサー

トリッププログラム!?

7桁の数字が,A~Z・a~z・0~9で構成された9桁の文字列になるとき,3103364はどうなるでしょうか。 3181008は0c8DgWWOz,3854944は0eJ9w3vyzになります。 お願いします! 【参考】(トリッププログラム) $tripkey = "#istrip"; #文字列 $tripkey = substr($tripkey,1); $salt = substr($tripkey.'H.',1,2); $salt =~ s/^.-z/./go; $salt =~ tr/:;<=>?@\^_`/ABCDEFGabcdef/; $trip = crypt($tripkey,$salt); $trip = substr($trip,-9); $trip = '◆'.$trip; print "$trip";

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

>というと例えばどういったプログラムになるでしょうか。 暗号のアルゴリズムは山のようにあります。 一概にこうだとは言えません。 一番簡単なものは、ひと文字ずらすと言うのもです。 abcが平文ならbcdが暗号文です。 これだと3103364は4214475になります。もちろんルールを知っていれば簡単に平文を復元できます。 こんなものは子供だましですが、知らないと案外使えます。 あとはご自分で調べて下さい。

その他の回答 (3)

  • kyotokyo
  • ベストアンサー率35% (27/77)
回答No.4

Crypt関数は一方向性暗号ですので 生成された数値から、元の数値を導き出すことは 総当りで調べるほかありません。

回答No.2

>では,3181008 が 0c8DgWWOz,3854944 が 0eJ9w3vyz になると >きは,どのような処理が実行されていると考えられますでしょうか。 cryptは不可逆性の暗号なのでそういう事は無理だと思います。 つまり0c8DgWWOzが3181008と一致するというのはわかりますが、それを復元することはできません。できるのは一致・不一致の判定だけです。 ですから類推して3103364が何になるかもわからないと思います。 それを知ろうと思えばcryptを使わないアルゴリズムにする必要があります。

noname#91440
質問者

補足

そうなんですか。 >> それを知ろうと思えばcryptを使わないアルゴリズムにする必要があります。  というと例えばどういったプログラムになるでしょうか。

  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.1

意味が分かりません。 参考プログラムを実行しましたが、 >3181008は0c8DgWWOz,3854944は0eJ9w3vyzになります。 にはなりません。 tripkey:3181008 = ◆CsRmbKg76 tripkey:3854944 = ◆kqbzczpco tripkey:3103364 = ◆FO70ZqI06 となります。

noname#91440
質問者

お礼

【訂正】 上の※のURLがこのページのものになっていたので訂正します。 http://okwave.jp/qa5177182.html

noname#91440
質問者

補足

.  早速の回答ありがとうございます。  では,3181008 が 0c8DgWWOz,3854944 が 0eJ9w3vyz になるときは,どのような処理が実行されていると考えられますでしょうか。 ※ http://okwave.jp/qa5179680.html   .

関連するQ&A