0

My problem is when i enter password in zend password element it show in bullet sign(encrypted formate) and when i inspect that in chrome or Mozilla it show password in plain text.how can i encrypt password at zend element like gmail password text box i mean when i type password and inspect that password it does not show my password in plain text format.

my password element in zend form is:

$password = new Zend_Form_Element_Password('Password');

$password->setRequired(true)
        ->setAttrib('size', 30)
        ->setRenderPassword(true)
        ->addFilter('StripTags')
        ->addFilter('StringTrim')
    ->addValidator('StringLength',false,array('min' => 6,'max' => 50,                          

'messages' => array(
    Zend_Validate_StringLength::INVALID =>'Please Enter correct Password',
    Zend_Validate_StringLength::TOO_LONG =>'Password is too long',
    Zend_Validate_StringLength::TOO_SHORT =>'Password is too short')));;
    $password->class="textbox";
    $password->setDecorators($decorators);
    $password->setAttrib('Maxlength', 50);      
4

2 回答 2

0

我认为你有这个问题是因为setRenderPassword(true)语法。如果您删除它,它将不会有纯文本形式的密码。

于 2012-09-26T11:57:21.843 回答
0

看起来您的密码元素比它真正需要的要忙一些。

  • 您永远不想看到或显示密码,您不在乎值是什么,您只关心输入的密码值散列到数据库中的值。

  • 删除'max'验证器中的值,只要密码具有最小长度,您就不关心密码有多长(无论如何您都要将密码散列到特定长度)。

  • 删除INVALID消息,这不是您验证密码的地方(发生在您的 auth() 函数中),这个验证器所做的只是验证格式。

  • 再次删除该MaxLength属性 - 你不在乎密码有多长,如果它让用户感觉更好,让他们使用 Moby Dick 的第一章。

  • 请注意您在密码元素中使用的过滤器,因为如果您更改或删除它们,您可能会破坏数据库中的大部分密码哈希。此外,如果这些过滤器的实现发生变化,那也可能会破坏您的哈希值。


    $password = new Zend_Form_Element_Password('Password');   
    $password->setRequired(true)
             ->setAttrib('size', 30)
             ->addFilter('HtmlEntities')
             ->addValidator('StringLength',false,array('min' => 6,                           
                'messages' => array(       
                    Zend_Validate_StringLength::TOO_SHORT =>'Password is too short'
              )));;
    $password->class="textbox";
    $password->setDecorators($decorators);

现在您将“密码”的值转储到您的散列函数中,然后保存或比较它。

祝你好运!

于 2012-09-27T13:54:25.520 回答