note 78920 added to function.base64-encode
| From: | keith at phpdiary dot org | Date: | Fri, 02 Nov 2007 07:28:09 +0000 |
| Subject: | note 78920 added to function.base64-encode | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-131934@lists.php.net to get a copy of this message | ||
A neat, simple and secure encrypt decrypt function that is URL safe. (meaning you can transport the
value through a http get or post). Since this is based on the base64_encode() function, you should
expect the encoded data to take about 33% more space than the original data.
Usage:
encrypt(âWelcome to phpdiary.orgâ,âsecretkeyâ);
This will show:
0NjRxuHS2YvZ6JPVy-LJ3czX8qHU1dk=
Now, letâs reverse it.
decrypt(â0NjRxuHS2YvZ6JPVy-LJ3czX8qHU1dk=â,âsecretkeyâ);
This will show:
Welcome to phpdiary.org
See, it works! And now the code..
## http://www.phpdiary.org/articles/simple-php-encrypt-function/
function encrypt($string, $key) {
$result = '';
for($i=0; $i<strlen ($string); $i++) {
$char = substr($string, $i, 1);
$keychar = substr($key, ($i % strlen($key))-1, 1);
$char = chr(ord($char)+ord($keychar));
$result.=$char;
}
return base64url_encode($result);
}
function decrypt($string, $key) {
$result = '';
$string = base64url_decode($string);
for($i=0; $i<strlen($string); $i++) {
$char = substr($string, $i, 1);
$keychar = substr($key, ($i % strlen($key))-1, 1);
$char = chr(ord($char)-ord($keychar));
$result.=$char;
}
return $result;
}
function base64url_encode($plainText) {
$base64 = base64_encode($plainText);
$base64url = strtr($base64, '+/', '-_');
return ($base64url);
}
function base64url_decode($plainText) {
$base64 = strtr($plainText, '-_', '+/');
return base64_decode($base64);
}
----
Server IP: 202.79.178.90
Probable Submitter: 202.156.12.10 (proxied: 222.164.75.168)
----
Manual Page -- http://www.php.net/manual/en/function.base64-encode.php
Edit -- https://master.php.net/note/edit/78920
Del: integrated -- https://master.php.net/note/delete/78920/integrated
Del: useless -- https://master.php.net/note/delete/78920/useless
Del: bad code -- https://master.php.net/note/delete/78920/bad+code
Del: spam -- https://master.php.net/note/delete/78920/spam
Del: non-english -- https://master.php.net/note/delete/78920/non-english
Del: in docs -- https://master.php.net/note/delete/78920/in+docs
Del: other reasons-- https://master.php.net/note/delete/78920
Reject -- https://master.php.net/note/reject/78920
Search -- https://master.php.net/manage/user-notes.php