OSDN Git Service

initial
[charactermanaj/CharacterManaJStorage.git] / cgi-bin / calc_trip.php
1 <?php
2 require_once __DIR__ . '/common.php';
3
4 /**
5  * Author文字列中に#がある場合は、#以降をトリップキーとして取り出す。
6  * トリップがない場合は空文字を返す。
7  * @param string $author トリップキーを含む可能性のある作者名
8  * @return トリップキー、もしくは空文字(トリップキーは#で始まる)
9  */
10 function get_trip_pass($author) {
11     $pos = strpos($author, '#');
12     if ($pos === false) {
13         return "";
14     }
15     $passphrase = substr($author, $pos);
16     return $passphrase;
17 }
18
19 /**
20  * Author文字列中に#がある場合は、#以降をトリップキーとして
21  * 一方向ハッシュ化した文字列に変換して返す。
22  * トリップがない場合は、作者名をそのまま返す。
23  * @param string $author 作者名
24  * @return トリップキーがあればトリップを付与した作者名、そうでなければ、そのまま
25  */
26 function get_display_author_name($author) {
27     $pos = strpos($author, '#');
28     $trip = '';
29     $name = $author;
30     if ($pos !== false) {
31         $name = substr($author, 0, $pos);
32         $passphrase = substr($author, $pos); // (トリップキーは#で始まる)
33         $trip = '#' . substr(calc_trip($passphrase), 0, 12); // トリップ値を先頭12文字に制限
34     }
35     return $name . $trip;
36 }
37
38 /**
39  * トリップキーから表示用の一方向ハッシュに変換した文字列を取得する
40  * @param string $passphrase トリップキー
41  * @return トリップを返す。
42  */
43 function calc_trip($passphrase) {
44     return base64_encode(sha1(TRIPSALT . $passphrase));
45 }
46 ?>