note 62607 added to function.crypt
| From: | .) | Date: | Sat, 04 Mar 2006 23:08:16 +0000 |
| Subject: | note 62607 added to function.crypt | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-104836@lists.php.net to get a copy of this message | ||
I've made a simple crypt and decrypt function which uses a shared key. When run several time
with the same input text and shared key it will generate different crypted-text each time, but it
will always be decrypted correct back to the original text.
I hope someone finds it useful...
<?php
function encrypt($s, $key)
{
for($i=0;$i<=strlen($s);$i++)
$r.=substr(str_shuffle(md5($key)),($i % strlen(md5($key))),1).$s[$i];
for($i=1;$i<=strlen($r);$i++) $s[$i-1]=chr(ord($r[$i-1])+ord(substr(md5($key),($i %
strlen(md5($key)))-1,1)));
return urlencode(base64_encode($s));
}
function decrypt($s, $key)
{
$s=base64_decode(urldecode($s));
for($i=1;$i<=strlen($s);$i++) $s[$i-1]=chr(ord($s[$i-1])-ord(substr(md5($key),($i %
strlen(md5($key)))-1,1)));
for($i=1;$i<=strlen($s)-2;$i=$i+2) $r.=$s[$i];
return $r;
}
$key='shared';
$encrypted = encrypt('input text',$key); //encrypts the data using the key
echo "$encrypted<hr>";
$decrypted = decrypt($encrypted,$key); //decrypts the data using the key
echo $decrypted;
?>
----
Server IP: 194.239.128.8
Probable Submitter: 80.198.156.102
----
X-Spam-Status: No, hits=3.3 required=5.0 tests=DATE_MISSING,FROM_NO_LOWER,
HTML_MESSAGE autolearn=no version=2.64
----
Manual Page -- http://www.php.net/manual/en/function.crypt.php
Edit -- http://master.php.net/note/edit/62607
Del: integrated -- http://master.php.net/note/delete/62607/integrated
Del: useless -- http://master.php.net/note/delete/62607/useless
Del: bad code -- http://master.php.net/note/delete/62607/bad+code
Del: spam -- http://master.php.net/note/delete/62607/spam
Del: non-english -- http://master.php.net/note/delete/62607/non-english
Del: in docs -- http://master.php.net/note/delete/62607/in+docs
Del: other reasons-- http://master.php.net/note/delete/62607
Reject -- http://master.php.net/note/reject/62607
Search -- http://master.php.net/manage/user-notes.php