# yum install ImageMagick ImageMagick-perl ImageMagick-c++
No. | ファイル名 | 概 要 |
1 | bg.gif | 文字画像用のバック用のランダムドット画像(70×22) |
2 | bg_gen.cgi | 上記画像を作成するスクリプト(オンラインでは未使用) |
3 | image_gen.cgi | 確認キーの画像を表示するスクリプト |
4 | keyinit.pl | ランダムキー関係のモジュールと各種設定 ゆいさんの簡易暗号化サブルーチン ( http://www.cup.com/yui/ ) |
# ライブラリファイル【サーバパス】 $jcodepl = './lib/jcode.pl'; $foldpl = './lib/fold.pl'; $regkeypl = './lib/registkey.pl'; $keyinitpl = './keyinit.pl'; (snip) |
</tr> EOM # 確認キー require "$keyinitpl"; $ciphertext = &en_key; print <<EOM; <tr valign="top"> <td><b>確認キー</b><br><img src="./image_gen.cgi?$ciphertext" alt="確認キー"></td> <td><font color="red">投稿時、左に表\示されている$len文字($charset[$chr])を入力してください。</font><br> <input type=text name=chk size=8 value="" maxlength=8> (確認キーは表\示後<font color="red">$ef_time分間のみ有効</font>です。)</td> <input type=hidden name=ciphertext value="$ciphertext"> </tr> EOM # 投稿キー if ($regist_key) { |
# 外部ファイル取り込み require './init.cgi'; require $jcodepl; require $foldpl; require $keyinitpl; (snip) |
# 入力チェック &chk_form; # 確認キーチェック &key_chk($in{'chk'},$in{ciphertext}); # 投稿キーチェック if ($regist_key) { |
# 入力チェック &chk_form; # 確認キーチェック &key_chk($in{'chk'},$in{ciphertext}); # 投稿キーチェック if ($regist_key) { |
<input type="hidden" name="wrap" value="$in{'wrap'}"> <input type="hidden" name="message" value="$in{'message'}"> <input type="hidden" name="chk" value="$in{'chk'}"> <input type="hidden" name="ciphertext" value="$in{ciphertext}"> EOM # 投稿キー if ($regist_key) { |
No. パラメータ 概 要 1 $debug = 0; [デバックモード]
デバックモードonの場合、画像生成の各過程の画像をファイルに書き出す。
負荷がかかるので、デバック時以外使用不可。
0:off(デフォルト) 1:on2 $imgfile = 'bbs.gif'; [画像ファイル名]
デバックモード時に書き出す画像ファイル名を指定する。
・char-bbs.gif: ベースとなる文字画像ファイル
・wave-bbs.gif: 波型加工した文字画像ファイル
・bbs.gif : 指定サイズにトリミングした表示用文字画像ファイル3 $ef_time = '30'; [確認キー有効時間]
確認キーの有効時間を分単位で指定する。4 $crypt_key = '1234ABCD'; [暗号化キー]
暗号化用のキーを英大小文字+数字(4〜8桁)で指定する。5 $len = '3'; [確認キー桁数]
6 $chr = 0; [確認キー文字種別]
確認キーで使用する文字種別を指定する。種別を混在させると誤判別しやすくなるので '3' は使用しないこと。
0=英大文字, 1=英小文字, 2=数字, 3=英大小文字+数字
@charset = ('英大文字','英小文字','数字','英大小文字+数字')は、文字種別の画面表示データなので修正不可。7 $W = '60';
$H = '22';[文字画像の幅と高さ]
文字画像の幅($W)と高さ($H)をピクセルで指定する。8 $bgfile = '#ffffff';
#$bgfile = 'bg.gif';[バックグラウンド画像]
単一色のキャンバスを自動生成する(色指定)か、予め用意された画像(xxx.gif/jpg)を指定する。
画像(gif/jpg形式のみ)を利用する場合は、文字画像の高さ+20ピクセル程度の画像を用意すること。
9 $font = 'full path'; [画像生成に使用するフォントのパス]
truetypeフォントを絶対パスで指定すること。
波型加工する場合は、文字を選ばないと判読不能になる。
なお、CentOSはtruetypeフォントはほとんど入っていないので、別途、RHELのSRPMをリビルドしてインストールすると良い。
・SuSE9.3
$font = '/usr/X11R6/lib/X11/fonts/truetype/luxirb.ttf';
・SuSE10.2
$font = '/usr/share/fonts/truetype/luxirb.ttf';
・CentOS4.4
$font = '/usr/X11R6/lib/X11/fonts/TTF/luxirb.ttf';
・WindowsXP
font = 'C:\WINDOWS\Fonts\TIMESBD.TTF';10 $font_color = '#ee0000'; [フォント色]
文字画像のフォントの色を指定する。11 $font_size = '20'; [フォントサイズ]
文字画像のフォントサイズを指定(point)する。12 $space = '0'; [文字間調整]
特に波型加工時に、文字が詰まって文字画像が見難い場合、文字間を調整する。
0:なし 1:あり(スペース挿入)13 $vert = '0'; [文字の高さ方向の調整]
キャンバス上の文字の高さ方向の微調整をピクセル指定で行う。
デフォルト:0 であるが、負数(ex. '-2') も利用可能。14 $amp = '1';
$pitch = '10';[文字画像の波状加工の振幅とピッチ]
文字画像を波状加工する場合、振幅($amp)とピッチ($pitch)を指定する。
波状加工しない場合は両方とも0にすること