- Perlについての質問箱 63箱目
936 :名無しさん@そうだ選挙に行こう[sage]:2014/12/14(日) 05:51:12.90 ID:HMqLKmVI - 2ちゃんねる互換のトリップを生成させたいのですが
どうも全角文字をトリップキーにすると2ちゃんねるのものとは違ってしまいます formの方でaccept-charset="utf-8"とかしてみたのですがどうにも・・・ 参考にしたのはwikipediaに載ってるソースです。 if ($name =~ /#/) { $name = substr($name, 0, index($name, "#")); if (length $tripkey >= 12) { my $mark = substr($tripkey, 0, 1); if ($mark eq '#' || $mark eq '$') { if ($tripkey =~ m|^#([[:xdigit:]]{16})([./0-9A-Za-z]{0,2})$|) { $trip = substr(crypt(pack('H*', $1), "$2.."), -10); } else { $trip = '???'; } } else { use Digest::SHA1 qw(sha1_base64); $trip = substr(sha1_base64($tripkey), 0, 12); $trip =~ tr/+/./; } } else { my $salt = substr $tripkey . "H.", 1, 2; $salt =~ s/[^\.-z]/\./g; $salt =~ tr/:;<=>?@[\\]^_`/A-Ga-f/; $trip = crypt $tripkey, $salt; $trip = substr $trip, -10; } $name = $name."◆".$trip."#".$tripkey; }
|