【发布时间】:2011-04-12 18:13:16
【问题描述】:
好的,所以我试图弄清楚如何从十六进制加密转到字符串并返回,但由于某种原因,当我加密时,我得到的密码与传入的密码不同,但它关闭了。 ..奇怪吧?我确定我的语法在某处是错误的。帮忙?
这是一个测试随机密码的链接。我已将 'pw' 设置为十六进制版本并将其传入:view demo
$encoded = (string)$_GET['pw'];
$literals = explode(' ', wordwrap($encoded, 2, ' ', 2));
$password = '';
for ($i = 0; $i < count($literals); $i++) {
$password .= chr(hexdec($literals[$i]) - $i);
}
echo $password . '<br />';
print_r($literals) . '<br />';
$passarray = str_split($password);
echo '<pre>';
print_r($passarray);
echo '</pre>';
for($i = 0; $i < count($passarray); $i++) {
$newpassword .= bin2hex($passarray[$i]);
}
echo $newpassword;
更新:
。我实际上并不是为了安全而尝试“加密”...我实际上是在尝试自动创建 Dreamweaver 站点定义文件,这是他们用来半隐藏密码的“加密” .我已经可以通过复制文件并插入不同的用户名来做到这一点,但我也想每次都发出新密码。仅供参考
【问题讨论】:
-
这不是加密。这只是一个代码转换(base 256 → base 16 和相反)。
-
如果你真的想加密一些东西(比如密码),看看MCrypt。
-
你是对的...我实际上并没有尝试加密本身的安全性...我实际上是在尝试自动创建 Dreamweaver 站点定义文件,这就是“加密" 他们用来半隐藏密码。