(2) 创建基于某个字符串的密码
有时候我们希望得到的密码不完全随机,而是有一定规律的。我们希望根据我们所给的字符来获得最终的密码。这样有个好处就是可以将密码还原成明文,只要我们知道算法。
Text_Password内建了一些算法来对字符串进行处理。有以下几种算法(或可称操作):
· xor
· rotx
· rotx++
· rotx--
· ascii_rotx
· ascii_rotx++
· ascii_rotx--
· shuffle
· reverse
GivenStrPWD.php
<?php
require_once "Text/Password.php";
echo "\n密码原文为: 'haohappy', 加密方法为: 'reverse',<BR>加密结果为:";
echo Text_Password::createFromLogin('haohappy', 'reverse') . "<P>";
echo "\n密码原文为 'haohappy', 加密方法为: 'rot13',<BR>加密结果为:";
echo Text_Password::createFromLogin('haohappy', 'rot13') . "<P>";
echo "\n密码原文为 'haohappy', 加密方法为: 'rotx',<BR>加密结果为:";
echo Text_Password::createFromLogin('haohappy', 'rotx', 13) . "<P>";
echo "\n密码原文为 'haohappy', 加密方法为: 'rotx++',<BR>加密结果为:";
echo Text_Password::createFromLogin('haohappy', 'rotx++', 13) . "<P>";
echo "\n密码原文为 'haohappy', 加密方法为: 'rotx--',<BR>加密结果为:";
echo Text_Password::createFromLogin('haohappy', 'rotx--', 13) . "<P>";
echo "\n密码原文为 'haohappy', 加密方法为: 'xor',<BR>加密结果为:";
echo Text_Password::createFromLogin('haohappy', 'xor', 5) . "<P>";
echo "\n密码原文为 'haohappy', 加密方法为: 'ascii_rotx',<BR>加密结果为:";
echo Text_Password::createFromLogin('haohappy', 'ascii_rotx', 5) . "<P>";
echo "\n密码原文为 'haohappy', 加密方法为: 'ascii_rotx++',<BR>加密结果为:";
echo Text_Password::createFromLogin('haohappy', 'ascii_rotx++', 5) . "<P>";
echo "\n密码原文为 'haohappy', 加密方法为: 'ascii_rotx--',<BR>加密结果为:";
echo Text_Password::createFromLogin('haohappy', 'ascii_rotx--', 5) . "<P>";
echo "\n密码原文为 'haohappy', 加密方法为: 'shuffle',<BR>加密结果为:";
echo Text_Password::createFromLogin('haohappy', 'shuffle', 1) . "<P>";
echo "\n<b>密码组</b>原文为: 'haohappy', 'martin', 'vanhoucke', 'jansen', 加密方法为: 'reverse':\n";
$logins = array('haohappy', 'martin', 'vanhoucke', 'jansen');
echo "结果如下:<pre>";
print_r(Text_Password::createMultipleFromLogin($logins, 'reverse'));
echo "</pre>";
?>
运行结果如图:
你可以按F5刷新几次,会发现除了Shuffle操作(打乱)之外,其它结果都是固定不变,也即非随机的。
以上即Text_Password的三个主要应用。