php自定加密与解密程序
PHP3 Cryption是一个非常容易被破解,不安全的加密功能,不应该是非常重要的东西用,虽然加密是好的,它不会阻碍对尖端开裂程序的严格考验.
不过,试试吧…这是一个伟大的方式来加密和解密字符串。与许多隐窝功能,这是双向的。基于一个密码,您可以加密或解密。您也可以解密或加密过无数次,通过循环或其他方法。字母表中的字符也是变化的。所有这些事情让你修改和巩固加密。
关于这最佳的部分?您可以加密与解密或一张纸和一支铅笔一块。这需要相当长一点,但你并不需要一台电脑是附近使用它,如果你曾经失去的代码,如果你还记得你的技术可以解密。
我写在约一小时这些功能,经过几次不成功的和令人沮丧的尝试,并获得了更长的时间我没有出路的。成功的那天后的最佳方式做它突然实现。
请注意,这不会加密/解密无形字符(空格),如换行符(n)或标签(吨)!很抱歉,但我尝试,如果你找到一个办法,请让我知道!
* /
highlight_file([crypto.php]);
$ralphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890 !,.:;?~@#$%^&*()_+-=][}{/><" '";
$alphabet = $ralphabet . $ralphabet ;
class Crypto {
function encrypt ( $password , $strtoencrypt ) {
global $ralphabet ;
global $alphabet ;
for ( $i =0; $i < strlen ( $password ); $i ++ )
{
$cur_pswd_ltr = substr ( $password , $i ,1);
$pos_alpha_ary [] = substr ( strstr ( $alphabet , $cur_pswd_ltr ),0, strlen ( $ralphabet ));
}
$i =0;
$n = 0;
$nn = strlen ( $password );
$c = strlen ( $strtoencrypt );
while ( $i < $c )
{
$encrypted_string .= substr ( $pos_alpha_ary [ $n ], strpos ( $ralphabet , substr ( $strtoencrypt , $i ,1)),1);
$n ++;
if ( $n == $nn ) $n = 0;
$i ++;
}
return $encrypted_string ;
}
function decrypt ( $password , $strtodecrypt ) {
global $ralphabet ;
global $alphabet ;
for ( $i =0; $i < strlen ( $password ); $i ++ )
{
$cur_pswd_ltr = substr ( $password , $i ,1);
$pos_alpha_ary [] = substr ( strstr ( $alphabet , $cur_pswd_ltr ),0, strlen ( $ralphabet ));
}
$i =0;
$n = 0;
$nn = strlen ( $password );
$c = strlen ( $strtodecrypt );
while ( $i < $c )
{
$decrypted_string .= substr ( $ralphabet , strpos ( $pos_alpha_ary [ $n ], substr ( $strtodecrypt , $i ,1)),1);
$n ++;
if ( $n == $nn ) $n = 0;
$i ++;
}
return $decrypted_string ;
}
function cryption_table ( $password ) {
global $ralphabet ;
global $alphabet ;
for ( $i =0; $i < strlen ( $password ); $i ++ )
{
$cur_pswd_ltr = substr ( $password , $i ,1);
$pos_alpha_ary [] = substr ( strstr ( $alphabet , $cur_pswd_ltr ),0, strlen ( $ralphabet ));
}
print "<table border=1 cellpadding=" 0 " cellspacing=" 0 ">n" ;
print "<tr><td></td>" ;
for ( $j =0; $j < strlen ( $ralphabet ); $j ++ )
{
print "<td align=" center "><font size=" 2 " face=" arial ">" . substr ( $ralphabet , $j ,1) . "</td>n" ;
}
print "</tr>" ;
for ( $i =0; $i < count ( $pos_alpha_ary ); $i ++ )
{
print "<tr><td align=" right "><font size=" 2 "><b>" . ( $i +1) . "|</b></font></td>" ;
for ( $k =0; $k < strlen ( $pos_alpha_ary [ $i ]); $k ++ )
{
print "<td align=" center "><font size=" 2 " face=" arial ">" . substr ( $pos_alpha_ary [ $i ], $k ,1) . "</td>n" ;
}
print "</tr>" ;
}
print "</table>n" ;
}
} // end class Crypto
// Example written by Macro Zeng
// 网络技术主管座右铭:三人行其必有我师焉。http://www.phpfensi.com
$ct = new Crypto;
//$ct->cryption_table($password);
echo "<form action=$PHP_SELF method=post>" ;
if ( $mod == 2) {
$strtodecrypt = $ct ->encrypt ( $password , $strtoencrypt );
echo 'Encrypted String(加密后的字段): ' ;
echo "<input type=text name=strtodecrypt size=45 value= $strtodecrypt >
";
echo "密码锁: <input type=text name=password size=6 value=$password>" ;
echo "<input type=submit value=" Decrypt(解密) ">" ;
}
else {
$strtoencrypt = $ct ->decrypt ( $password , $strtodecrypt );
echo 'String to Encrypt(需要加密的字段): ' ;
echo "<input type=text name=strtoencrypt size=45 value= $strtoencrypt > //开源代码phpfensi.com
";
echo "密码锁: <input type=text name=password size=6 value=$password>" ;
echo "<input type=submit value=" Encrypt(加密) ">" ;
echo "<input type=hidden name=mod value=2>" ;
}
echo "</form>" ;