public static function create($file)
    {
        if (is_string($file)) {
            $file = new Reader($file);
        }

        $signature = new self($file);
        $signature->addAlgorithm(new Algorithm\MD5());
        $signature->addAlgorithm(new Algorithm\SHA1());
        $signature->addAlgorithm(new Algorithm\SHA256());
        $signature->addAlgorithm(new Algorithm\SHA512());

        if (extension_loaded('openssl')) {
            $signature->addAlgorithm(new Algorithm\OpenSSL());
        }

        return $signature;
    }