PHP可逆加密

<?php
//加密算法
function encrypt($data, $key)
{
$key = md5($key);
$x = 0;
$len = strlen($data);
$l = strlen($key);
$char = $str = ‘‘;
for ($i = 0; $i < $len; $i++)
{
if ($x == $l)
{
$x = 0;
}
$char .= $key{$x};
$x++;
}
for ($i = 0; $i < $len; $i++)
{
$str .= chr(ord($data{$i}) + (ord($char{$i})) % 256);
}
return base64_encode($str);
}
//解密算法

function decrypt($data, $key)
{
$key = md5($key);
$x = 0;
$data = base64_decode($data);
$len = strlen($data);
$l = strlen($key);
for ($i = 0; $i < $len; $i++)
{
if ($x == $l)
{
$x = 0;
}
$char .= substr($key, $x, 1);
$x++;
}
for ($i = 0; $i < $len; $i++)
{
if (ord(substr($data, $i, 1)) < ord(substr($char, $i, 1)))
{
$str .= chr((ord(substr($data, $i, 1)) + 256) - ord(substr($char, $i, 1)));
}
else
{
$str .= chr(ord(substr($data, $i, 1)) - ord(substr($char, $i, 1)));
}
}
return $str;
}

//__maim__

$data = ‘向翔招商卡号112233445566‘; // 被加密信息
$key = ‘zlf‘; // 密钥
$encrypt = encrypt($data, $key);
$decrypt = decrypt($encrypt, $key);
echo $encrypt, "<br/>", $decrypt;

?>

时间: 2024-11-02 12:58:05

PHP可逆加密的相关文章

一对可逆加密函数

// 加密 function encrypt($str) { return base64_encode($str.AUTH_KEY); } // 解密 function decrypt($str) { $info = base64_decode($str); $len = strlen(AUTH_KEY); return substr($info, 0, 0 - $len); } 其中AUTH_KEY为密钥,需要自行设置 一对可逆加密函数

C#加密方法汇总(SHA1加密字符串,MD5加密字符串,可逆加密等)

using System;using System.Collections.Generic;using System.Text; namespace StringEncry{ class EncodeAndDecode { /// <summary> /// Base64加密 /// </summary> /// <param name="codeName">加密采用的编码方式</param> /// <param name=&qu

MD5 不可逆加密,Des对称可逆加密 ,RSA非对称可逆加密 ,数字证书 SSL

:MD5 不可逆加密2:Des对称可逆加密3:RSA非对称可逆加密4:数字证书 SSL Anker_张(博客园)http://www.cnblogs.com/AnkerZhang/ 1:MD5 不可逆加密 using System.IO; using System.Security.Cryptography; using System.Text; namespace EncryptDemo { /// <summary> /// 不可逆加密 /// 1 防止被篡改 /// 2 防止明文存储 /

一组PHP可逆加密解密算法

对于大部分密码加密,我们可以采用md5.sha1等方法.可以有效防止数据泄露,但是这些方法仅适用于无需还原的数据加密. 对于需要还原的信息,则需要采用可逆的加密解密算法. 下面一组PHP函数是实现此加密解密的方法: 加密算法如下: function encrypt($data, $key) { $key = md5($key); $x = 0; $len = strlen($data); $l = strlen($key); for ($i = 0; $i < $len; $i++) { if

可逆加密解密单元文件和调用方法

1 (**************************************************) 2 (* *) 3 (* Advanced Encryption Standard (AES) *) 4 (* Interface Unit v1.3 *) 5 (* *) 6 (* *) 7 (* Copyright (c) 2002 Jorlen Young *) 8 (* *) 9 (* *) 10 (* *) 11 (*说明: *) 12 (* *) 13 (* 基于 ElASE

php 可逆加密方法

可以逆转的加密类,没有密钥很难破解 [PHP]代码 <? class encryptCalss { var $key=12; function encode($txt){ for($i=0;$i<strlen($txt);$i++){ $txt[$i]=chr(ord($txt[$i])+$this->key); } return $txt=urlencode(base64_encode(urlencode($txt))); } function decode($txt){ $txt=u

网上搜集的一段php可逆加密函数

php加密函数: function my_encrypt($data, $key='unun.in') { $char = $str = ''; $key = md5($key); $x = 0; $len = strlen($data); $l = strlen($key); for ($i = 0; $i < $len; $i++){ if ($x == $l){ $x = 0; } $char .= $key{$x}; $x++; } for ($i = 0; $i < $len; $i

c#加密 可逆与不可逆MD5 加密

1.方法一 (不可逆加密) srxljl public string EncryptPassword(string PasswordString,string PasswordFormat )     {      string   encryptPassword = null;     if (PasswordFormat="SHA1"){           encryptPassword=FormsAuthortication.HashPasswordForStoringInCo

字符串的加密与解密(二)

二.可逆加密 以下的几种加密和解密均要添加对System.Security.Cryptography命名空间的引用: using System.Security.Cryptography; 1.DES public class DESDemo { /// <summary> /// 向量 /// 向量的长度为8位,也就是DES算法的块大小,经本人亲测,若小于8位程序会抛出异常, /// 若大于8位,则8位以后的不起作用. /// 字节数组里的值可以根据个人需要进行更改 /// 这个参数也可使用