• ベストアンサー

暗号化の計算式

cryptの暗号化についてなのですが同じ特定の文字列を暗号化させても 毎回違う結果になりますがどのような計算式でこのような結果になる のかわかりやすく教えて下さい。 また、他にも様々な暗号化の方法があると思いますが毎回結果が異なる 暗号化方法の計算式もあったら教えて下さい。 よろしくおねがいします。

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

  • ベストアンサー
  • nagare
  • ベストアンサー率33% (280/831)
回答No.1

隠し味のSOLT(2文字)が犯人(?)です

参考URL:
http://www.shadowpenguin.org/sc_documents/spsdocument13.html
lovelove180sx
質問者

お礼

ありがとうございます。 参考になります。(*^_^*) がんばって勉強してみます。

関連するQ&A

  • crypt以外の暗号化の方法ってあるのでしょうか

    cryptで複数の文字列を暗号化した場合、暗号化した後の文字列が同じになる場合がありますので困っています…。 phpのmd5のような関数はないのでしょうか。

    • ベストアンサー
    • Perl
  • 一般的なセキュリティ(暗号化)

    こんにちは、Perlを始めて2週間の者です。 只今、認証ページを勉強&作成中です。 IDとPASSに関しては暗号化して認証することを考えていますが、 crypt関数で暗号化すると、8文字以降は切り捨てられるとのことなので、 入力文字列を8文字で区切り、それぞれを暗号化した後に結合して 1つの暗号化された文字列を生成しました。 8文字以上の(文字数が多い)方が安全性が増すという意味合いからです。 また、入力値を暗号化する前に、reverseで逆順にしたりしましたが、 こういった処理には(文字数を増やしたり、逆順にする)意味がありますか? (さほど、セキュリティ強度は変わらないのでしょうか?) また、完全な暗号化は存在しないと承知の上ですが、MD5等も 強度が低いと聞きました。 通常、認証時のデータはどのようなセキュリティを施すべきですか? (○○○をすれば十分というものは?)

  • どうやって暗号化しているか分かりません

    あるホームページのツール(PHPで作られています)で、 「1234567890」を暗号化すると「MTIzNDU2Nzg5MA」に変換されるのですが、どの関数を使用して暗号化しているか分かりません。 ランダム生成ではなく固定のようですがMD5などとはまったく違う暗号なので・・ どなたか分かる方いませんでしょうか?回答宜しくお願いします。 また他の文字列も暗号化してみましたがどの文字列も変換するとアルファベットの大文字小文字が非常に多くなります。

    • ベストアンサー
    • PHP
  • perlで可逆な暗号化

    perlで、どうしてもパスワードをGETで送る必要があります。 通常は、cryptを使用して暗号化するのだと思いますが、 cryptは不可逆なので使用したくありません。 perlを使用して、可逆で、できる限り簡単に暗号化する方法を教えてください。

    • ベストアンサー
    • Perl
  • TrueCryptで暗号化したHDDはほかのpcで

    TrueCryptで暗号化したHDDはほかのpcでつかえるのでしょうか? HDDをtrue cryptで暗号化したのですが、 これは仮想ドライブをつくって、マウントしてそこにデータをいれるということをするみたいなのですが、そうするとほかのパソコンではもう開けることはできないのでしょうか? 私としてはあくまでHDDを持ち運ぶから故に、暗号化したいのであって特定のパソコンでないと利用出来なくなるのはとても困ると思っています。 また、外付けHDDが3テラなので、true cryptを使うことにしたのですが本当は、もっと別のソフトを使いたかったのですが2テラ以上のドライブを丸ごと暗号化に対応してるソフトがよくわからなかったので仕方なくつかうことにしたというかんじです。 どなたかアドバイス宜しくお願いします。

  • パスワード暗号化について(CGIスクリプト)

     現在記事削除処理の、キー暗号化と解読について勉強しているんですが、他の方が書いたソースを読んでもさっぱり意味不明です。技術評論社さんのリファレンスを参考にしてるんですが、どうも載っていないワザが使われているらしく・・・。  まずは暗号化処理です(とある有名ソースから抜粋)。 @SALT = ('a'..'z', 'A'..'Z', '0'..'9', '.', '/'); srand; $salt = $SALT[int(rand(@SALT))] . $SALT[int(rand(@SALT))]; $encrypt = crypt($password, $salt) || crypt ($password, '$1$' . $salt); 問題は$encryptなんですが、||演算子は、要するに左オペランドの保険みたいなものなんでしょうか?まず、左オペランドが偽になる、ということ自体が分かりません。結果が偽になる、というのは0を返すということでしょうか?  crypt関数が処理を失敗する(?)、ということでも偽になるかもしれないんですが、暗号化処理を失敗などということがあるのでしょうか?  次に、ひとまず左オペランドが偽だった場合ですが、右オペランドに関して、暗号化キーが「$1$xx」の5文字ですよね。暗号化キーは2文字までしか評価されないから、結局これは「$1」と変わらない気がします。というより、まずなぜ「$1$」なんでしょうか?そして、合計5文字の意味は・・・?謎は深まるばかりです。  質問の長さが800文字を超えてしまうので、前半はここで切らせていただきます。  後半は「パスワード解読について(CGIスクリプト)」にて質問させていただいています。  どうかよろしくお願いします。

    • ベストアンサー
    • Perl
  • 8文字以上の文字を暗号化する方法

    Apache1.3.37+PHP5.2.4+MySQL51.22のレンタルサーバでWEBコンテンツを作っています。 フォームから入力されたパスワードを、DBに格納する際、暗号化したいと思います。 MD5やsha1やcryptなどいろいろあるのですが、8文字を超える文字の暗号化ができないようです。 8文字を超える暗号化はどうすればいいのでしょうか? よろしくお願いします。

    • 締切済み
    • PHP
  • PHP で暗号化して何かを送信することってあるのでしょうか?

    こんにちは、趣味で PHP を触っています。 とても初歩的な質問になってしまうと思いますが、よろしくお願いします。 PHP では crypt 関数で暗号化することができるらしいのですが、実際にこれを使わなければいけない場合とはどのような時なのでしょうか? http://jp2.php.net/manual/ja/function.crypt.php PHP で処理したことを MySQL などのデータベースに書き込む場合、主にサーバー内での処理なので外部から見られることなんてないと思っていましたが、見ることは可能なのでしょうか? それともう一つ質問がありまして、マニュアルには「復号するための関数はありません。 crypt() が使用しているのは単方向アルゴリズムだからです。」とありますが、それだと暗号化すると二度とその情報が何かわからなくなるのではないでしょうか? 何か複合化する方法があるのですか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • PowerShellの暗号化&複合化

    お世話になります。 タイトルにありますように、PowerShellでパスワード文字列の暗号化と、 暗号化された文字列を元の文字列に戻し、変数に持つ、という事をしたいのです。 此方のサイトを見つけまして、 http://technet.microsoft.com/ja-jp/windows/ps_tips13.aspx 真似る事で、テキストファイル内に暗号化されたパスワードを作成することが出来ました。 しかし、テキスト内に記録された文字列を、どうやって元に戻し、使うのでしょうか。 この方法は証明書を使うものでも、公開鍵を使うものでもない、 実に単純なものに思えるのですが元に戻す方法が判りません。 どうかご教授頂けますでしょうか。よろしくおねがいします。

  • パスワードの暗号化

    いつもお世話になっております。 今回はjavascriptをつかった暗号化についてお聞きしたいです。 パスワードをサーバーに送る際、そのまま送ると少し詳しい人なら丸わかりになってしまいます。 そこで暗号化をして送信したく、いろいろ探してみましたがなかなかいい方法が見当たりません。 des.jsというライブラリを見つけましたが、復号化のコードも書いてあり、簡単に復号できてしまうような気がします。 いろいろ探していていいと思ったのは、perlのcryptのような不可逆の暗号化の方法でした。 そのような方法はjavascriptにあるのでしょうか? またそれ以外でもなにかいい方法はありますでしょうか? 完全に隠蔽するのは不可能だということはわかっておりますが、 できる限りわかりにくくする方法を知りたいです。 以上の点、ご教授お願いいたします。