今天我爱编程网小编为大家带来了php同一个明文加密后如何得到不同的密文?而且这些密文解密后都是同一个明文!,希望能帮助到大家,一起来看看吧!
本文目录一览:
在PHP开发中六种加密的方法,你用的是哪种?
在PHP开发的世界里,数据的安全性至关重要。让我们深入探讨六种常见的加密方法,看看你在实际项目中是如何运用的。
首先,我们从PHP内置的加密函数谈起。PHP为我们提供了两种截然不同的加密手段:不可逆的和可逆的。不可逆的如
md5()
,它生成的哈希值是单向的,用于确保数据的唯一性,而
crypt()
则是单向DES加密,适合于密码存储。相反,
base64_encode()
和
urlencode()
这类方法,如网络传输时常用,通过MIME BASE64编码便于跨平台传输,但它们是可逆的,有对应的解密函数如
base64_decode()
。
接着,我们来看两个实际应用中的加密函数示例。一是
lock_url()
,它巧妙地结合了URL编码和特殊字符的处理,通过算法将输入的字符串加密后进行传输。另一个是经过精简的加密函数,如
passport_encrypt()
,同样采用编码和密钥操作,确保数据在传输中的安全性。
在项目中,更为复杂的加密处理可能涉及使用如
authcode()
这样的自定义函数。它根据输入的明文、操作类型(加密或解密)和密钥,生成动态密钥并执行加密核心算法。这种功能在用户登录验证和API数据交换中尤为常见。
最后,让我们探索一种更为灵活的加密解密模式。通过定义函数如
encrypt()
,我们可以使用MD5作为密钥生成器,并结合Base64编码,实现了双向操作。这个例子展示了如何对字符串进行加密和解密,以满足不同的应用场景。
在你的PHP开发旅程中,选择哪种加密方法取决于具体需求。不可逆的哈希函数适用于验证数据完整性,而可逆的编码方法适用于数据交换。记住,每个项目都有其特定的安全要求,选择适合的加密策略至关重要。
在追求安全的同时,不要忘记关注我们的公众号:PHP从入门到精通,那里有更多进阶知识和实用资源,帮助你提升技能,解决进阶问题。无论你是新手还是资深开发者,这里都有适合你的内容。一起探索PHP的无限可能,提升你的技术实力。
php同一个明文加密后如何得到不同的密文?而且这些密文解密后都是同一个明文!
那加密时只能用不同的密钥才能获得不同的密文,而且解密时还得用之前的密钥,因此假如密文要存储的话,密钥也要跟着存储,否则就解密不了了!
看看我写的代码,加密和解密函数是从网上找的,在刷新页面时,会有几率出现乱码!你可以自己换,不过必须是可逆的。
<?php
$ming = 'zhonghuarenmingongheguo';
$iv = rand(1000, 9999); //密钥
$mi = encrypt($iv, $ming);
$jiemi = decrypt($iv, $mi);
echo '原文:'.$ming.'<br/>';
echo '加密:'.$mi.'<br/>';
echo '解密:'.$jiemi;
// 加密函数
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)));
}
// 解密函数
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));
}
?>
参考:
我爱编程网
php加密和解密的代码
我爱编程网(https://www.52biancheng.com)小编还为大家带来php加密和解密的代码的相关内容。
php提供的加密函数不只是有MD5,虽然MD5是用得最多的,因为其安全性相对较好。但是现在也有网站通过提供庞大的数据库来对其进行破解(比如
www.cmd5.com
)。
除了MD5外,php还支持base64加密,这个函数可以进行解密,但是这种方式加密的结果并不是很安全,当然,如果要求不是很高的话,可以使用。进行base64加密的函数是:base64_encode($str);相反,对加密后的结果进行解密的函数是:base64_decode($str)。如:
<?php
$a="admin";
$b=base64_encode($a);
$c=base64_decode($b);
echo "加密前:\$a=",$a,"<br />";
echo "加密后:\$b=",$b,"<br />";
echo "解密后:\$c=",$c,"<br />";
?>
如果对这种方式得到的加密结果不满意,你可以对加密后或者加密前的字符串进行可逆处理(可逆是为了方便解密),然后在进行加密或者相关处理就可以了。
余下的自己搞定吧
以上就是我爱编程网整理的php同一个明文加密后如何得到不同的密文?而且这些密文解密后都是同一个明文!相关内容,想要了解更多信息,敬请查阅我爱编程网。更多相关文章关注我爱编程网:
www.52biancheng.com免责声明:文章内容来自网络,如有侵权请及时联系删除。