PHPで変なテキトーなパスワードハッシュの作り方
ツイッターの方で、テキトーでパスワードハッシュを作ったら、悪いハッカーが嫌がるのではないのか?を考察していたけど
それを暇つぶしで実装して、大体で動いている物が出来た。いくつかパスワードを作成して、ハッシュが出来ているのは確かめたけど。実際で使えるかどうかは知らない
試験的な実装なので
- 以下、ソースリスト ------
<?php
class Password {
static $seed;
static function RndSeed() {
// 適当なランダム処理
self::$seed = ~self::$seed;
self::$seed = self::$seed ^ 904845396; //XOR
self::$seed = self::$seed ^ 12345678901234567; //XOR
self::$seed = ~self::$seed; //NOT
self::$seed = self::$seed * 6 + 1233;
// 丸める
self::$seed = self::$seed % 10000000000000000000;
return self::$seed;
}
static function MakeHash ($password, $seed) {
self::$seed = $seed;
$data = unpack("i*", $password);
$password = "";
foreach ($data as $value) {
$seed = self::RndSeed();
$value = $value ^ $seed;
$password .= pack("C*", $value);
}
return hash_hmac('ripemd160', $password, 'secret');
}
}
echo(Password::MakeHash("password", 1234567890));