※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

Q. IDを板毎ではなくスレッド毎に生成することはできますか?(2006-02-27版)



A. お好きな方法で。


■ 1つ目の案

HOST+日にち+板アカウントで生成してるんじゃなかったっけ。
まぁスレッドごとにID生成したいなら生成の時にスレッドキーも放り込んでやればいいんじゃないかな。
スレッドキーからsaltを作成して、一回余計にcryptかける。
やってることは単純だが、実装するとなるとめんどい。

galadriel.pl
sub MakeID 内
my ($server,$column) = @_;

my ($server,$column,$key) = @_;

$ret = substr(crypt(crypt($str,$times[5]),$times[3]+31),$column);

my @slt = ('.','/','0'..'9','A'..'Z','a'..'z');
my $saltbykey = $slt[$key & 63] . $slt[($key & 4095) >> 6];
$ret = >substr(crypt(crypt(crypt($str,$times[5]),$times[3]+31),$saltbykey),$column);

vara.pl
137行目あたり
$id = $oConv->MakeID($oSys->Get('SERVER'),8);

$id = $oConv->MakeID($oSys->Get('SERVER'),8,$oSys->Get('KEY'));



■ 2つ目の案

galadriel.plはいじらずに、
vara.pl
137行目あたり
$id = $oConv->MakeID($oSys->Get('SERVER'),8);

$id = $oConv->MakeID(substr($oSys->Get('KEY'), -8),8);
だけで実質的に十分な感じ。



.