2chのトリップ生成
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[PHP]]
#contents
* 2chのトリップとは? [#wbc52d03]
2ch掲示板で使われているハッシュ値の一種。
[[トリップ (電子掲示板) - Wikipedia>http://ja.wikipedia.o...
>トリップとは、匿名掲示板2ちゃんねるなど電子掲示板の名前...
トリップは暗号化された文字列であり、使用者のパスワード入...
名前の由来は『1人用(ひとりよう)キャップ』を略して『トリ...
パスワードが同一であれば、誰でも同一のトリップを表示でき...
簡易で短いハッシュ値として、トリップを利用したい。
* PHPのトリップ作成法 [#e9ee2bc7]
[PHP] 2chのトリップを計算する
http://pc.casey.jp/archives/2452
#code(php){{
function index(){
Configure::write('debug', 2);
// set key
$key = '#istrip';
// UTF-8 to SJIS
$key = mb_convert_encoding($key, "SJIS", "UTF-8"); /...
// exec
$ret = $this->_makeTrip($key);
// debug
debug($ret);
}
/*-----------------------------------------------------
* make 2ch TRIP ( = DES ) by CASEY.JP 2010 GPL
*-----------------------------------------------------
* VERSION:
* 2010.08.17 0.01 alpha
* NOTE:
* digit 8: -2002.10.03
* digit 10: 2002.10.03-
* digit 12: 2009.06.19-
* test data for digit 10:
* $key = "#テスト"; // ◆SQ2Wyjdi7M
* $key = '#Wikipedia'; // ◆Ig9vRBfuyA
* $key = '#istrip'; // ◆/WG5qp963c
* test data for digit 12:
* $key = '#TESTTESTTESTTEST'; // ◆TDxLX5/h3FIK
* $key = '#テストテストテスト'; // ◆Iwo2kAiiMPp6
* SJIS CODE in SCRIPT
*/
function _makeTrip($key){
// check
preg_match('|^#(.*)$|', $key, $keys);
if(empty($keys[1])) return false;
$key = $keys[1];
// start
if(strlen($key) >= 12){
// digit 12
$mark = substr($key, 0, 1);
if($mark == '#' || $mark == '$'){
if(preg_match('|^#([[:xdigit:]]{16})([./0-9A-...
$trip = substr(crypt(pack('H*', $str[1]),...
}else{
// ext
$trip = '???';
}
}else{
$trip = substr(base64_encode(sha1($key, TRUE)...
$trip = str_replace('+', '.', $trip);
}
}else{
// digit 10
$tripkey = htmlspecialchars($key, ENT_QUOTES);
$salt = htmlspecialchars($key, ENT_QUOTES);
$salt = substr($tripkey . 'H.', 1, 2);
$pattern = '/[\x00-\x20\x7B-\xFF]/';
$salt = preg_replace($pattern, ".", $salt);
$patterns = ":;<=>?@[\\]^_`";
$mach = "ABCDEFGabcdef";
for($i=0; $i<=13-1; $i++){
$salt = str_replace($patterns[$i], $mach[$i],...
}
$trip = crypt($tripkey, $salt);
$trip = substr($trip, -10);
}
$trip = '◆'.$trip;
return $trip;
}
}}
このような関数でトリップを生成できるとのこと。
情報提供どうもありがとうございます。
終了行:
[[PHP]]
#contents
* 2chのトリップとは? [#wbc52d03]
2ch掲示板で使われているハッシュ値の一種。
[[トリップ (電子掲示板) - Wikipedia>http://ja.wikipedia.o...
>トリップとは、匿名掲示板2ちゃんねるなど電子掲示板の名前...
トリップは暗号化された文字列であり、使用者のパスワード入...
名前の由来は『1人用(ひとりよう)キャップ』を略して『トリ...
パスワードが同一であれば、誰でも同一のトリップを表示でき...
簡易で短いハッシュ値として、トリップを利用したい。
* PHPのトリップ作成法 [#e9ee2bc7]
[PHP] 2chのトリップを計算する
http://pc.casey.jp/archives/2452
#code(php){{
function index(){
Configure::write('debug', 2);
// set key
$key = '#istrip';
// UTF-8 to SJIS
$key = mb_convert_encoding($key, "SJIS", "UTF-8"); /...
// exec
$ret = $this->_makeTrip($key);
// debug
debug($ret);
}
/*-----------------------------------------------------
* make 2ch TRIP ( = DES ) by CASEY.JP 2010 GPL
*-----------------------------------------------------
* VERSION:
* 2010.08.17 0.01 alpha
* NOTE:
* digit 8: -2002.10.03
* digit 10: 2002.10.03-
* digit 12: 2009.06.19-
* test data for digit 10:
* $key = "#テスト"; // ◆SQ2Wyjdi7M
* $key = '#Wikipedia'; // ◆Ig9vRBfuyA
* $key = '#istrip'; // ◆/WG5qp963c
* test data for digit 12:
* $key = '#TESTTESTTESTTEST'; // ◆TDxLX5/h3FIK
* $key = '#テストテストテスト'; // ◆Iwo2kAiiMPp6
* SJIS CODE in SCRIPT
*/
function _makeTrip($key){
// check
preg_match('|^#(.*)$|', $key, $keys);
if(empty($keys[1])) return false;
$key = $keys[1];
// start
if(strlen($key) >= 12){
// digit 12
$mark = substr($key, 0, 1);
if($mark == '#' || $mark == '$'){
if(preg_match('|^#([[:xdigit:]]{16})([./0-9A-...
$trip = substr(crypt(pack('H*', $str[1]),...
}else{
// ext
$trip = '???';
}
}else{
$trip = substr(base64_encode(sha1($key, TRUE)...
$trip = str_replace('+', '.', $trip);
}
}else{
// digit 10
$tripkey = htmlspecialchars($key, ENT_QUOTES);
$salt = htmlspecialchars($key, ENT_QUOTES);
$salt = substr($tripkey . 'H.', 1, 2);
$pattern = '/[\x00-\x20\x7B-\xFF]/';
$salt = preg_replace($pattern, ".", $salt);
$patterns = ":;<=>?@[\\]^_`";
$mach = "ABCDEFGabcdef";
for($i=0; $i<=13-1; $i++){
$salt = str_replace($patterns[$i], $mach[$i],...
}
$trip = crypt($tripkey, $salt);
$trip = substr($trip, -10);
}
$trip = '◆'.$trip;
return $trip;
}
}}
このような関数でトリップを生成できるとのこと。
情報提供どうもありがとうございます。
ページ名: