一个简洁的PHP可逆加密函数(分享)

http://www.jb51.net/article/38018.htm

本篇文章是对一个简洁的PHP可逆加密函数进行了详细的分析介绍,需要的朋友参考下
 

很多时候我们需要对数据进行加密解密,比如有些数据需要保存到cookie中,但又不能被用户轻易得到这些数据,这时我们就需要加密这些数据保存到cookie中,等我们需要使用它们的时候再解密。

加密的过程如下:

复制代码代码如下:

// 加密数据并写到cookie里
$cookie_data = $this -> encrypt("nowamagic", $data);

$cookie = array(
    'name'   => '$data',
    'value'  => $cookie_data,
    'expire' => $user_expire,
    'domain' => '',
    'path'   => '/',
    'prefix' => ''
);
$this->input->set_cookie($cookie);

// 加密
public function encrypt($key, $plain_text) {  
    $plain_text = trim($plain_text);  
    $iv = substr(md5($key), 0,mcrypt_get_iv_size (MCRYPT_CAST_256,MCRYPT_MODE_CFB));  
    $c_t = mcrypt_cfb (MCRYPT_CAST_256, $key, $plain_text, MCRYPT_ENCRYPT, $iv);  
    return trim(chop(base64_encode($c_t)));  

 

使用的时候再解密:
if( isset($_COOKIE['data']) )
{
    //用cookie给session赋值
    $_SESSION['data'] = decrypt("nowamagic", $_COOKIE['data']);
}

function decrypt($key, $c_t) {  
    $c_t = trim(chop(base64_decode($c_t)));  
    $iv = substr(md5($key), 0,mcrypt_get_iv_size (MCRYPT_CAST_256,MCRYPT_MODE_CFB));  
    $p_t = mcrypt_cfb (MCRYPT_CAST_256, $key, $c_t, MCRYPT_DECRYPT, $iv);  
    return trim(chop($p_t));  
}  


这里记录下这个可逆的加密函数的使用。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 你可以使用 PHP 内置的函数进行加密,例如 hash() 和 password_hash()。 hash() 函数可以对字符串进行加密,例如: ``` $password = "secret"; $hash = hash("sha256", $password); ``` password_hash() 函数可以对密码进行加密,它是一个更安全的选择,并且它可以自动处理盐值: ``` $password = "secret"; $hash = password_hash($password, PASSWORD_DEFAULT); ``` 请确保使用适当的加密算法,并定期更新加密算法以保护数据的安全。 ### 回答2: PHP中有许多不同的加密函数可供使用,我将选择使用常见的哈希函数来实现一个简单的加密函数。 首先,我们需要选择一个合适的哈希算法。SHA-256是一个常用的安全哈希算法,因此我们将使用它来加密数据。 我们可以创建一个名为encrypt的函数,该函数将接受一个字符串作为输入,并返回相应的加密哈希值。 ```php function encrypt($str) { // 使用SHA-256算法加密字符串 $encryptedStr = hash('sha256', $str); return $encryptedStr; } ``` 在这个函数中,我们使用hash函数并指定SHA-256算法来加密输入的字符串。 要使用这个加密函数,您只需传递您希望加密的字符串作为参数即可。 ```php $originalStr = 'hello world'; $encryptedStr = encrypt($originalStr); echo '原始字符串:' . $originalStr; echo '加密后的字符串:' . $encryptedStr; ``` 执行上述代码,输出将会是: 原始字符串:hello world 加密后的字符串:2ef7bde608ce5404e97d5f042f95f89f1c232871 注意,由于哈希函数是不可逆的,因此无法从加密后的字符串恢复原始的未加密字符串。所以,哈希函数通常用于检查数据的一致性和完整性,而不是为了保护数据的机密性。 ### 回答3: 要用PHP编写一个加密函数,我们可以使用现有的加密算法和函数库来实现。以下是一个示例代码,使用MD5算法进行加密: ```php function encrypt($data) { $encryptedData = md5($data); return $encryptedData; } $plainText = 'Hello World'; $encryptedText = encrypt($plainText); echo '密文:' . $encryptedText; ``` 上述代码中,我们定义了一个名为`encrypt`的函数,它接受一个数据作为参数。在该函数中,我们使用`md5`函数对数据进行加密,并将加密后的数据返回。 我们可以调用`encrypt`函数,传入要加密的数据,然后打印出加密后的结果。在这个例子中,我们对字符串"Hello World"进行加密,最后输出的结果为加密后的密文。 需要注意的是,MD5是一种单向散列函数,它将数据转化为固定长度的密文,但无法将密文转换回原始数据。因此,这个函数实现了加密功能,但不是可逆加密。 此外,我们还可以使用其他加密算法,如SHA1、AES等,具体取决于我们的需求和安全要求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lxw1844912514

你的打赏就是对我最大的鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值