title: Codeigniter ion auth password issue
body: <p>I ran in to a problem with ion auth what i cant really solve.</p>
  
  <p>I use sha1 encryption, salt is turnd off in config.</p>
  
  <p>Checked if the input post posts the correct input and it does.</p>
  
  <p>I type in for password 12345, and that should be 8cb2237d0679ca88db6464eac60da96345513964 whit sha1 encryption.</p>
  
  <p>But when it sends it into the database its totally different every time, like it would create a random string each time</p>
  
  <p>Here is my signup function</p>
  
  <pre><code>// signup
  function signup()
  {
       loggedIn();
  
       $this-&gt;load-&gt;view('partials/header');
  
       $this-&gt;form_validation-&gt;set_rules('username', 'Username', 'required');
       $this-&gt;form_validation-&gt;set_rules('password', 'Password', 'required|min_length[4]');
       $this-&gt;form_validation-&gt;set_rules('repassword', 'Retype Your Password', 'required|min_length[4]|matches[password]');
  
       if($this-&gt;form_validation-&gt;run() !== FALSE)
       {
            $username = $this-&gt;input-&gt;post('username');
            $password = $this-&gt;input-&gt;post('password');
            $email = $this-&gt;input-&gt;post('email');
            $additional_data = array('name' =&gt; $this-&gt;input-&gt;post('name'));    
  
            $group = array('2');
            $this-&gt;ion_auth-&gt;register($username, $password, $email, $additional_data, $group);
       }
  
       $this-&gt;load-&gt;view('user/user_signup_view');
       $this-&gt;load-&gt;view('partials/footer');
  } 
  </code></pre>
  
  <p>Could please someone give me a hint? or if anybody ran in to a similar problem and got it fixed, please provide some help</p>
  
  <p>EDIT</p>
  
  <p>config file</p>
  
  <pre><code>&lt;?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
  
  /*
  | -------------------------------------------------------------------------
  | Database Type
  | -------------------------------------------------------------------------
  | If set to TRUE, Ion Auth will use MongoDB as its database backend.
  |
  | If you use MongoDB there are two external dependencies that have to be 
  | integrated with your project:
  |   CodeIgniter MongoDB Active Record Library - http://github.com/alexbilbie/codeigniter-mongodb-library/tree/v2
  |   CodeIgniter MongoDB Session Library - http://github.com/sepehr/ci-mongodb-session
  */
  $config['use_mongodb'] = FALSE;
  
  /*
  | -------------------------------------------------------------------------
  | MongoDB Collection.
  | -------------------------------------------------------------------------
  | Setup the mongodb docs using the following command: 
  | $ mongorestore sql/mongo
  |
  | Ion Auth uses a simplified schema when using MongoDB as backend, here they are:
  |
  | groups: {
  |   _id: GROUP_ID,
  |   name,
  |   description
  | }
  |
  | login_attempts: {
  |   _id: LOGIN_ATTEMPT_ID,
  |   ip_address,
  |   login,
  |   time
  | }
  |
  | users: {
  |   _id: USER_ID,
  |   ip_address,
  |   username, (ensureIndex)
  |   password,
  |   salt,
  |   email, (ensureIndex)
  |   activation_code,
  |   forgotten_password_code, (ensureIndex)
  |   forgotten_password_time,
  |   remember_code,
  |   created_on, (ensureIndex)
  |   last_login,
  |   active, (ensureIndex)
  |   first_name,
  |   last_name,
  |   company,
  |   phone,
  |   groups: [GROUP_ID_1, GROUP_ID_2, ...], (ensureIndex)
  | }
  |
  */
  $config['collections']['users']          = 'users';
  $config['collections']['groups']         = 'groups';
  $config['collections']['login_attempts'] = 'login_attempts';
  
  /*
  | -------------------------------------------------------------------------
  | Tables.
  | -------------------------------------------------------------------------
  | Database table names.
  */
  $config['tables']['users']           = 'job_users';
  $config['tables']['groups']          = 'job_groups';
  $config['tables']['users_groups']    = 'job_users_groups';
  $config['tables']['login_attempts']  = 'job_ogin_attempts';
  
  /*
   | Users table column and Group table column you want to join WITH.
   |
   | Joins from users.id
   | Joins from groups.id
   */
  $config['join']['users']  = 'user_id';
  $config['join']['groups'] = 'group_id';
  
  /*
   | -------------------------------------------------------------------------
   | Hash Method (sha1 or bcrypt)
   | -------------------------------------------------------------------------
   | Bcrypt is available in PHP 5.3+
   |
   | IMPORTANT: Based on the recommendation by many professionals, it is highly recommended to use
   | bcrypt instead of sha1.
   |
   | NOTE: If you use bcrypt you will need to increase your password column character limit to (80)
   |
   | Below there is "default_rounds" setting.  This defines how strong the encryption will be,
   | but remember the more rounds you set the longer it will take to hash (CPU usage) So adjust
   | this based on your server hardware.
   |
   | If you are using Bcrypt the Admin password field also needs to be changed in order login as admin:
   | $2a$07$SeBknntpZror9uyftVopmu61qg0ms8Qv1yV6FG.kQOSM.9QhmTo36
   |
   | Becareful how high you set max_rounds, I would do your own testing on how long it takes
   | to encrypt with x rounds.
   */
  $config['hash_method']    = 'sha1'; // IMPORTANT: Make sure this is set to either sha1 or bcrypt
  $config['default_rounds'] = 8;      // This does not apply if random_rounds is set to true
  $config['random_rounds']  = FALSE;
  $config['min_rounds']     = 5;
  $config['max_rounds']     = 9;
  
  /*
   | -------------------------------------------------------------------------
   | Authentication options.
   | -------------------------------------------------------------------------
   | maximum_login_attempts: This maximum is not enforced by the library, but is
   | used by $this-&gt;ion_auth-&gt;is_max_login_attempts_exceeded().
   | The controller should check this function and act
   | appropriately. If this variable set to 0, there is no maximum.
   */
  $config['site_title']           = "Example.com";        // Site Title, example.com
  $config['admin_email']          = "admin@example.com";  // Admin Email, admin@example.com
  $config['default_group']        = 'members';            // Default group, use name
  $config['admin_group']          = 'admin';              // Default administrators group, use name
  $config['identity']             = 'email';              // A database column which is used to login with
  $config['min_password_length']  = 7;                    // Minimum Required Length of Password
  $config['max_password_length']  = 20;                   // Maximum Allowed Length of Password
  $config['email_activation']     = FALSE;                // Email Activation for registration
  $config['manual_activation']    = FALSE;                // Manual Activation for registration
  $config['remember_users']       = TRUE;                 // Allow users to be remembered and enable auto-login
  $config['user_expire']          = 86500;                // How long to remember the user (seconds)
  $config['user_extend_on_login'] = FALSE;                // Extend the users cookies everytime they auto-login
  $config['track_login_attempts'] = FALSE;                // Track the number of failed login attempts for each user or ip.
  $config['maximum_login_attempts']     = 3;              // The maximum number of failed login attempts.
  $config['forgot_password_expiration'] = 0;              // The number of seconds after which a forgot password request will expire. If set to 0, forgot password requests will not expire.
  
  
  /*
   | -------------------------------------------------------------------------
   | Email options.
   | -------------------------------------------------------------------------
   | email_config:
   |    'file' = Use the default CI config or use from a config file
   |    array  = Manually set your email config settings
   */
  $config['use_ci_email'] = FALSE; // Send Email using the builtin CI email class, if false it will return the code and the identity
  $config['email_config'] = array(
      'mailtype' =&gt; 'html',
  );
  
  /*
   | -------------------------------------------------------------------------
   | Email templates.
   | -------------------------------------------------------------------------
   | Folder where email templates are stored.
   | Default: auth/
   */
  $config['email_templates'] = 'auth/email/';
  
  /*
   | -------------------------------------------------------------------------
   | Activate Account Email Template
   | -------------------------------------------------------------------------
   | Default: activate.tpl.php
   */
  $config['email_activate'] = 'activate.tpl.php';
  
  /*
   | -------------------------------------------------------------------------
   | Forgot Password Email Template
   | -------------------------------------------------------------------------
   | Default: forgot_password.tpl.php
   */
  $config['email_forgot_password'] = 'forgot_password.tpl.php';
  
  /*
   | -------------------------------------------------------------------------
   | Forgot Password Complete Email Template
   | -------------------------------------------------------------------------
   | Default: new_password.tpl.php
   */
  $config['email_forgot_password_complete'] = 'new_password.tpl.php';
  
  /*
   | -------------------------------------------------------------------------
   | Salt options
   | -------------------------------------------------------------------------
   | salt_length Default: 10
   |
   | store_salt: Should the salt be stored in the database?
   | This will change your password encryption algorithm,
   | default password, 'password', changes to
   | fbaa5e216d163a02ae630ab1a43372635dd374c0 with default salt.
   */
  $config['salt_length'] = 10;
  $config['store_salt']  = FALSE;
  
  /*
   | -------------------------------------------------------------------------
   | Message Delimiters.
   | -------------------------------------------------------------------------
   */
  $config['message_start_delimiter'] = '&lt;p&gt;';     // Message start delimiter
  $config['message_end_delimiter']   = '&lt;/p&gt;';    // Message end delimiter
  $config['error_start_delimiter']   = '&lt;p&gt;';     // Error mesage start delimiter
  $config['error_end_delimiter']     = '&lt;/p&gt;';    // Error mesage end delimiter
  
  /* End of file ion_auth.php */
  /* Location: ./application/config/ion_auth.php */
  </code></pre>