Skip to content

abrahamD/grunt-hazy

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

grunt-hazy

A grunt plugin that encrypt/encode/obfuscate your javascript and php files.

Getting Started

This plugin requires Grunt ~0.4.2

If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:

npm install grunt-hazy --save-dev

Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:

grunt.loadNpmTasks('grunt-hazy');

The "hazy" task

Overview

In your project's Gruntfile, add a section named hazy to the data object passed into grunt.initConfig().

grunt.initConfig({
    hazy: {
        options: {
            // Task-specific options go here.
        },
        your_target: {
            // Target-specific file lists and/or options go here.
        }
    }
});

Sample Output

PHP

In this example, we have the basic setup. So if the sample.php file has the content :

<?php echo 'hello world'; ?>

The generated result would be :

<?php eval("?>".base64_decode("PD9waHAgZWNobyAnaGVsbG8gd29ybGQnOyA/Pg==")."<?"); ?>

JAVASCRIPT

In this example, we have the basic setup. So if the sample.js file has the content :

console.log('hello world');

The generated result would be :

$=~[];$={___:++$,$$$$:(![]+"")[$],__$:++$,$_$_:(![]+"")[$],_$_:++$,$_$$:({}+"")[$],$$_$:($[$]+"")[$],_$$:++$,$$$_:(!""+"")[$],$__:++$,$_$:++$,$$__:({}+"")[$],$$_:++$,$$$:++$,$___:++$,$__$:++$};$.$_=($.$_=$+"")[$.$_$]+($._$=$.$_[$.__$])+($.$$=($.$+"")[$.__$])+((!$)+"")[$._$$]+($.__=$.$_[$.$$_])+($.$=(!""+"")[$.__$])+($._=(!""+"")[$._$_])+$.$_[$.$_$]+$.__+$._$+$.$;$.$$=$.$+(!""+"")[$._$$]+$.__+$._+$.$+$.$$;$.$=($.___)[$.$_][$.$_];$.$($.$($.$$+"\""+$.$$__+$._$+"\\"+$.__$+$.$_$+$.$$_+"\\"+$.__$+$.$$_+$._$$+$._$+(![]+"")[$._$_]+$.$$$_+"."+(![]+"")[$._$_]+$._$+"\\"+$.__$+$.$__+$.$$$+"('\\"+$.__$+$.$_$+$.___+$.$$$_+(![]+"")[$._$_]+(![]+"")[$._$_]+$._$+"\\"+$.$__+$.___+"\\"+$.__$+$.$$_+$.$$$+$._$+"\\"+$.__$+$.$$_+$._$_+(![]+"")[$._$_]+$.$$_$+"');"+"\"")())();

Usage Examples

BASIC SETUP

grunt.initConfig({
    hazy: {
        options: {},
        files: {
            'dest/sample.php': ['src/sample.php'],
            'dest/sample.js': ['src/sample.js']
        }
    }
});

PHP

grunt.initConfig({
    hazy: {
        php: {
            expand: true,
            cwd: 'src',
            dest: 'dest',
            src: [ '*.php' ]
        }
    }
});

JAVASCRIPT

grunt.initConfig({
    hazy: {
        js: {
            expand: true,
            cwd: 'src',
            dest: 'dest',
            src: [ '*.js' ]
        }
    }
});

ALL

grunt.initConfig({
    hazy: {
        default_options: {
            options: {},
            files: {
                'dest/sample.php': ['src/sample.php'],
                'dest/sample.js': ['src/sample.js']
            }
        },
        php: {
            expand: true,
            cwd: 'src',
            dest: 'dest',
            src: [ '*.php' ]
        },
        js: {
            expand: true,
            cwd: 'src',
            dest: 'dest',
            src: [ '*.js' ]
        },
        all: {
            expand: true,
            cwd: 'src',
            dest: 'dest',
            src: [ '*.*' ]
        }
    }
});

Contributing

In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.

Release History

  • 0.1.5: Added javascript encoder
  • 0.1.0: Initial release

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • CoffeeScript 98.2%
  • PHP 1.8%