人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

ユーザー名、パスワードの2行でできているCSVファイルがあります。パスワードはまだ暗号化されていません。ここで質問です。
生のパスワードをこちらのページのように、BASIC認証用に暗号化したいと思います。
ttp://orange-factory.com/tool/crypt.cgi
一行全部変換したいのですが、なにかフリーのソフト、CGIなどありますでしょうか。
もし無い場合には、perl修行中なのですが、こうやって読み込んで、関数に代入して出力するというようなアドバイスなども歓迎です。
よろしくお願いします。

●質問者: rain2003
●カテゴリ:コンピュータ
✍キーワード:BASIC認証 CGI CSV Factory Orange
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● abunakunai
●65ポイント ベストアンサー

Perlだったら以下のようなものでどうですか

SALTを固定したければ$saltを

$salt = 'r7';

などとすれば、

http://orange-factory.com/tool/crypt.cgi

のcgiと同じ変換か調べられます。

csvで','区切りですと、

split ':';

の部分を

split ',';

に変える必要があります。

#!/usr/local/bin/perl
=here
 test.csv
 name:pass
 name02:pass02
 というファイルを test2.csvに保存します。
=cut
# SALT用キャラクタ
@CHAR = (0..9, 'A'..'Z', 'a'..'z');
$buf = '';
# ファイルを開く
open(IN, 'test.csv');
binmode(IN);
# 1行ずつ処理
while (<IN>) {
 # 改行削る
 tr/\r\n//d;
 #:くぎりのものを分ける
 ($name, $pass) = split ':';
 # SALT作成
 $salt = $CHAR[ int(rand(@CHAR)) ]. $CHAR[ int(rand(@CHAR)) ];
 # 新規一行作成
 $buf .= $name. ':'. crypt($pass, $salt). "\n";
}
close(IN);
# 保存
open(OUT, '> test2.csv');
binmode(OUT);
print OUT $buf;
close(OUT);
◎質問者からの返答

実験してみましたが大丈夫でした。

全部コードも書いていただきありがとうございます。ファイルの読み方と書き込み方の勉強にもなりました。また何かあったらよろしくお願いします。


2 ● samejima
●5ポイント

http://www.linux.or.jp/JM/html/LDP_man-pages/man3/crypt.3.ht...

http://www.tohoho-web.com/wwwperl2.htm

SALTには./も使えます。


改行を削るのは普通chomp

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ