Php 从输出中提取数据
我的屏幕上显示了分配给变量的以下输出Php 从输出中提取数据,php,Php,我的屏幕上显示了分配给变量的以下输出 <pre> $content = First Name: ajkhfsadf Last Name: asdfasf password: jkasdfhasdf2234h234j23 (encrypted. variable length) objectClass: asdfjkashdf </pre> 是否有一种方法可以仅选择密码行,并将加密密码替换为*,而不管其在输出中的位置如何?您使用的是PHP。我假设您一次性读取整个输出并将其
<pre>
$content = First Name: ajkhfsadf
Last Name: asdfasf
password: jkasdfhasdf2234h234j23 (encrypted. variable length)
objectClass: asdfjkashdf
</pre>
是否有一种方法可以仅选择密码行,并将加密密码替换为*,而不管其在输出中的位置如何?您使用的是PHP。我假设您一次性读取整个输出并将其存储在变量$var
中
首先,使用linebreak\n
作为delimeter分解$var
。现在所有行都是分开的
现在,您在行周围循环,进一步分解:
上的每一行,并检查新数组的第一个组件,查看它是否匹配密码。重建数组(使用)就完成了
好处:通过将$password
的所有字符替换为星号,攻击者可以知道密码包含多少字符(除非您的加密方案输出固定长度的字符串)。您可以使用PHP的。我假设您一次性读取整个输出并将其存储在变量$var
中
首先,使用linebreak\n
作为delimeter分解$var
。现在所有行都是分开的
现在,您在行周围循环,进一步分解:
上的每一行,并检查新数组的第一个组件,查看它是否匹配密码。重建数组(使用)就完成了
额外好处:通过将$password
的所有字符替换为星号,攻击者可以知道密码包含多少字符(除非加密方案输出固定长度的字符串)。响应您的评论时,从数据库检索该值时无需屏蔽该值,或者您正在使用的存储设备
您需要做的是使文本框在HTML中看起来像这样:
不过,请注意,这不是很安全
您最终想要实现什么?响应您的评论,那么您在从数据库或正在使用的存储中检索该值时,无需屏蔽该值
您需要做的是使文本框在HTML中看起来像这样:
不过,请注意,这不是很安全
您最终的目标是什么?您这样做是为了让您的文本框在密码字段中只显示*?请澄清!是的,这是正确的,因为我不想透露密码,即使它是加密的。你这样做是为了让你的文本框只显示*的密码字段?请澄清!是的,这是正确的,因为我不想透露密码,即使它是加密的。但愿我知道正则表达式:/I我认为php中没有名为replace_regexp的函数。我得到函数错误。调用未定义函数replace_regexp()Brain fart,它是preg_replace+1,因为它比我的答案简单得多。但愿我知道正则表达式:/I我认为php中没有名为replace_regexp的函数。我得到函数错误。调用未定义函数replace_regexp()Brain fart,它是preg_replace响应来自计算机上运行的shell脚本。我只是想用****来屏蔽密码字段,响应来自计算机上运行的shell脚本。我只是想用****来屏蔽密码字段,不管加密密码的长度如何,我都会用8颗星来替换它,或者一起删除该字段。不管加密密码的长度如何,我都会用8颗星来替换它,或者一起删除该字段。
$word1 = "password: ";
$word2 = "objectClass";
$word3 = "Password: ******** \n";
$between=substr($contents, strpos($contents, $word1), strpos($contents, $word2) - strpos($contents, $word1));
$output = str_replace($between,$word3,$contents);
$string = preg_replace('/Password: .*/', 'Password: ********', $string);
<input type="password" value="...Stored Password...">