2012-05-17 25 views
3

如何将密码字符串转换为指定的符号,如*或其他。如何将字符串转换为PHP中的符号

我目前正在修改密码页面。 我想显示密码到页面,我想避免密码忽视某人,所以我想隐藏密码的字符串像*相同长度的符号。 例如<input type="password" />

对不起我的英文不好...

+2

你是如何存储你是能够再次找回密码?你应该散列密码,而不是在页面上显示它们。 –

+1

@火箭真,虽然它取决于应用程序。我花了很多时间在无线路由器上进行编程/修复/呼叫,当我无法从路由器中检索当前编程的WPA密钥时,它真的让我感到厌烦,所以我不得不重置它,因为一些白痴最终用户忘记了什么他们将其设置为,然后我必须在手机上花费3个小时向他们解释如何让Windows忘记无线网络,以便您可以重新加入并重新设置密钥并<重呼吸> grrrr ..... – DaveRandom

回答

10
$output_password = str_repeat ('*', strlen ($input_password)); 
0

做这样的:

$passwordstring = "password"; 
$outputpassword = ""; 
while(strlen($outputpassword)<strlen($passwordstring)) 
{ 
    $outputpassword .= "*"; 
} 

echo $outputpassword 
+1

尝试使用建立像str_repeat这样的函数;)。 – Styxxy

0

一种方法是使用类型密码的输入,但其设置为禁用。

<input type='password' disabled='disabled' value='somepassword' />

+0

右键单击=>检查项目:哦,这是密码。啊。 – Styxxy

+1

@Styxxy是的,但他说,他想避免有人走过去并“忽略”密码,我想这意味着在您尝试更改密码时查看屏幕。当然,如果这是通过HTTP而不是HTTPS,那么我不会使用这个解决方案。但为了他的目的,这可能就足够了。如果我的用户从公共场所登录,我可能也不会使用这个解决方案,因为他们可能忘记注销了...... – Kasapo

+0

好吧。那么密码字段就足够了,反正你看不到密码。 – Styxxy

1

如果你正在寻找一种简单的方法来只创建星号等于密码的长度的字符串:

$modified = str_repeat("*", strlen("secretpass")); 

echo $modified; // ********** 
1

你不输出密码在你的HTML中,你创建了一个asterix(*)你的密码表示。这很容易被str_repeat函数来完成:

<?php 
$password = "MyPasswordThatIWantToMask"; 
$maskedPassword = str_repeat("*", strlen($password)); 
?> 

现在你只输出$maskedPassword作为密码字段的值。

但是,另一个很有意思的事情是:你怎么知道用户的密码长度?我真诚地希望你哈希你的密码,而不是让他们围绕纯文本。

0

虽然有很多答案在这里展示str_repeat()的用户,我有点怀疑这是你想要的。毕竟,任何白痴都可以用一个字符来填充一个字符串,如果你可以简单地使用它,那么就没有什么意义了,正如你正确地指出的那样,<input type="password" />(是的,你仍然可以从源代码中获取密码,但为什么麻烦填充混淆字段?或者不是只填充静态固定数量的*字符?)。

我怀疑你正在寻找的东西更多的是这样的:

<?php 

    $thePassword = "thisIsMyPassword"; 

?> 

<input type="text" id="input_user_types_in" value="<?php echo str_repeat('*', strlen($thePassword)); ?>" /> 
<input type="hidden" id="value_to_post_back" name="value_to_post_back" value="<?php echo $thePassword; ?>" /> 

<script type="text/javascript"> 

    var textInput = document.getElementById('input_user_types_in'); 
    var hiddenInput = document.getElementById('value_to_post_back'); 

    textInput.onfocus = function() { 
    this.value = hiddenInput.value; 
    }; 

    textInput.onblur = function() { 
    var i; 
    hiddenInput.value = this.value; 
    this.value = ''; 
    for (i = 0; i < hiddenInput.value.length; i++) { 
     this.value = this.value + '*'; 
    } 
    }; 

</script> 

有一个fiddle与它周围;-)

相关问题