使用Code Igniter实现SHA 512哈希

时间:2012-03-10 21:25:42

标签: php codeigniter sha512

我有一个控制器:landingpage.php

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class LandingPage extends CI_Controller {

    public function index(){
          $data = array(
            'head' => $this->load->view('Landing_Header', '', true),
            'guts' => $this->load->view('Landing_Guts', '', true),
            'foot' => $this->load->view('Landing_Footer', '', true)
          );
          $this->load->view('index', $data);
    }

    public function validateInput(){
        #load help libraries for use
        $this->load->helper("form");
        $this->load->helper("form_validation");

        /////////////////////////////////////////////////////////////////
        /////////////////////// New User Validation /////////////////////
        /////////////////////// Format for Validation :  ////////////////
        ////////// "field name","Error Value","validation method" ///////
        $this->form_validation->set_rules('fullname','Your Name','required|min_length[2]|max_length[20]');
        $this->form_validation->set_rules('email','Your Email','required|valid_email|is_unique[users.email]');
        $this->form_validation->set_rules('emailConf','Email Confirm','required|matches[email]');
        $this->form_validation->set_rules('password','Password','required|min_length[2]|max_length[20]');
    }
}

我想知道如何实现SHA 512散列,就像我以前在程序上执行应用程序时那样,这次是在CODEIGNITER中执行吗?

isset($_POST['password'])
$dynamSalt = mt_rand(20,100); 
$userPassword = hash('sha512',$dynamSalt.$userPassword);

代码点火器是否具有内置功能?或类似的东西?

1 个答案:

答案 0 :(得分:5)

  

代码点火器是否具有内置功能?

不,但是因为PHP确实 - 你不需要一个。

hash('sha512', $string);

它不会比这更容易或更短。为什么要重写现有功能?

但是,对于PHP中的散列密码,我建议使用phpass:

http://www.openwall.com/phpass/