■内容(全体の流れ)
(1)メールアドレス等入力
(2)自動返信メールにて登録完了の通知
(3)パスワード申請URLにてパスワードを申請
(4)自動返信メールにて、パスワードを送付。
(5)ログイン画面で、ログインする。
(6)ログイン後は、会員専用のPDF文書がダウンロードできる。
この中の(5)で、正しいパスワードを入力しても「パスワードが間違っています」というエラー表示がでるようになりました。
■問題解決に必要と思われる情報
1.パスワード生成は、<stdio.pl> CGI Standard Input Output Library Ver 3.36
2.不可逆のパスワード生成cryptを使っている?
print FILE "$Form{'mail'}:" . stdio'CryptString($passwd) . ":" . time . ":" . time . "\n";
3.レンタルサーバを変更したら問題が発生した。またパスワード記録ファイルの文字数が変わった。
問題なし:ギガバイズ http://saya.g--z.com/
xxxxxx@**.com:l/nloYYiaSdi6:986364127:986364127
問題あり:CPI http://www.cpi.ad.jp/
xxxxxx@**.com:$1$LN$iBFSFm4u1KoaMoXXUB5xh.:1109749957:1109749957
※xxxxxx@**.comは、メールアドレス
※ロリポップレンタルサーバでも問題なく動作した。
5.ユーザーに送られてくるパスワードの文字数は、8文字。
例:d8DHy4iy (3で記載したCPIで生成された、ユーザーへ送られたパスワード)
私の推測では、サーバを変えたことによりパスワードの暗号化の方法が変わり、認証の際に登録時のパスワードと相違が発生しているのではないか、と考えています。
対処法お分かりになる方がいらっしゃいましたら教えてください。
どうぞよろしくお願い致します。
No.1ベストアンサー
- 回答日時:
> サーバを変えたことによりパスワードの暗号化の方法が変わり、・・・
まさにその通りです。
今回の場合、
CPIの方でcryptが吐き出しているのが$1$で始まるMD5ですね。
ギガバイズの方はDESです。
よって、両者が吐き出すcrypt後の文字列が異なるために「パスワードが間違っています」になってしまうのでしょう。
対処法としては、
・どちらか一方に統一
・crypt関数を使わず別の方法を採る
の二つがあります。
前者の方は、サーバーの仕様による違いなのでどうしようもないですが、
DESに統一する場合は、故 小塚 敦さんが作成されたライブラリを使用することができます。
http://mikeneko.creator.club.ne.jp/~lab/perl/des/
これを使った場合は、サーバーの環境を問わずDESで暗号化した形のものを常に取得することができます。
ただし、PurePerlである分、通常のcrypt関数を使うときよりもサーバーへの負担は高いです。
(単発ならいいですが連続使用する場合は注意が必要です)
後者の方法としては、
・各種ハッシュ関数を使ったハッシュにして扱う
・パスワードをそのまま(生のまま)扱う
があります。
ハッシュで使う場合は、お馴染みのMD5、SHA1をはじめとしてSHA256、384、512やRIPEMD160、256・・・等を使うことになります。
ただし、後者の二つは既存の記録ファイルから元のパスワードを導くことができないので、今回の場合は前者の「どちらかに統一」の方法を採ることになるでしょう。
(個人的なお奨めはハッシュを利用したものですが)
No.2
- 回答日時:
問題の原因は推測どおりサーバによる違いです。
参考URL1
stdio'CryptString の中身までみていませんが、
検索してみたところ、cryptがMD5で動作する環境でDES方式の暗号化を行うライブラリ(参考URL2)がありましたので、crypt関数を使っている部分をこのモジュールに差し替えればうまく動きそうな気がします。
参考URL:http://tech.bayashi.net/pdmemo/crypt.html,http:/ …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(セキュリティ) Facebookアカウントを乗っ取られ、ログインも出来ずパスワードの再設定もできずに困っている 2 2023/02/17 14:24
- 囲碁・将棋 囲碁 KGS の cgoban ログインパスワードを忘れた対策 1 2023/04/10 08:20
- その他(コンピューター・テクノロジー) 下に書いたの条件でgoogleアカウントの復旧方法等を教えてください。 1 2023/02/06 23:32
- Ameba(アメーバブログ) セキュリティ厳しくしされすぎてブログを作成できなかったのでしょうか? アメブロに登録してブログを作成 2 2022/09/29 08:05
- iPhone(アイフォーン) iPhone7 標準メールアプリでicloud.com のメール設定が出来ない。助けてください! 3 2022/08/17 13:04
- ハッキング・フィッシング詐欺 googleに保存されたパスワードが間違っている、、、 1 2022/06/22 20:50
- au(KDDI) auスマートパスプレミアム解約できなくて困ってます! 自分の管理不足でお恥ずかしいのですが、詳しい方 6 2023/02/27 13:37
- UNIX・Linux Ubuntu on Xorgのログインについて 2 2023/08/10 15:16
- Instagram 今日スマホを初期化してしまい、アプリなどが全て消えてしまい、とりあえずインスタを入れ直してログインし 1 2023/07/15 23:37
- Netflix Netflixのパスワード変更についてですが、2ヶ月前にdocomoの爆アゲというものから契約しまし 2 2023/06/23 07:22
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストファイルで提出とは?
-
perlで2次元配列をサブルーチ...
-
perlでリテラル値はメモリにど...
-
INDIRECT 横に再度抽出したい
-
Perl 重複カウント 上位3名
-
アルファベットに付いて質問し...
-
#!/usr/bin/perlで書きだしたCG...
-
Perlのエラーについてご教授く...
-
perlのflock関数でロックをかけ...
-
AI sisterとは、偽物の人ですか?
-
bashスクリプト
-
perlプログラミング 空白行削除
-
perlについて
-
perlのrequireの動き方について...
-
perlの構文でカンマの意味が分...
-
perlについての質問
-
perlのプログラミング 部分入れ...
-
perlをバージョンアップしたら...
-
Perl の外部モジュールの利用方法
-
perl このテキストファイルを簡...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
INDIRECT 横に再度抽出したい
-
perlをバージョンアップしたら...
-
openした後、closeしないでプロ...
-
Perlで特定文字列から特定文字...
-
Wallpaper Engineでおすすめの...
-
Perlのエラーについてご教授く...
-
アルファベットに付いて質問し...
-
Strawberry Perl for Windows ...
-
bashスクリプト
-
テキストファイルで提出とは?
-
Perl の外部モジュールの利用方法
-
#!/usr/bin/perlで書きだしたCG...
-
Windows10においての『Perl』の...
-
perlのflock関数でロックをかけ...
-
perlで2次元配列をサブルーチ...
-
Perlで時間の計算
-
perlのrequireの動き方について...
-
画像が表示でnull; this.src
-
ターミナルで特定の文字と文字...
-
英数文字列のうちの数値を4桁に...
おすすめ情報