搜索
首页后端开发php教程mcrypt 如何加/解密 ?_PHP

查看 Phpinfo() 页面,看看你的 libmcrypt 是哪个版本的,如果 2.4.0 以上就不能使用你的那种方法。

而且 libmcrypt 的支持的加密算法,所依赖的 libmcrypt 的版本也是不一样的。

下面的是 2.4.0+ 的加解密的方法~

也是手册中的例子

<font size="2"><font face="Verdana">PHP代码:</font><hr></font><code><font color="#000000">
<font color="#0000bb"><br></font><font color="#007700">function </font><font color="#0000bb">make_seed</font><font color="#007700">() {
<br>    list(</font><font color="#0000bb">$usec</font><font color="#007700">, </font><font color="#0000bb">$sec</font><font color="#007700">) = </font><font color="#0000bb">explode</font><font color="#007700">(</font><font color="#dd0000">' '</font><font color="#007700">, </font><font color="#0000bb">microtime</font><font color="#007700">());
<br>    return(float) </font><font color="#0000bb">$sec </font><font color="#007700">+((float) </font><font color="#0000bb">$usec </font><font color="#007700">* </font><font color="#0000bb">100000</font><font color="#007700">);
<br>}
<br></font><font color="#0000bb">srand</font><font color="#007700">(</font><font color="#0000bb">make_seed</font><font color="#007700">());
<br>
<br></font><font color="#ff8000">/* 开启加密算法/ */
<br></font><font color="#0000bb">$td </font><font color="#007700">= </font><font color="#0000bb">mcrypt_module_open</font><font color="#007700">(</font><font color="#dd0000">'twofish'</font><font color="#007700">, </font><font color="#dd0000">''</font><font color="#007700">, </font><font color="#dd0000">'ecb'</font><font color="#007700">, </font><font color="#dd0000">''</font><font color="#007700">);
<br>
<br></font><font color="#ff8000">/* 建立 IV,并检测 key 的长度 */
<br></font><font color="#0000bb">$iv </font><font color="#007700">= </font><font color="#0000bb">mcrypt_create_iv</font><font color="#007700">(</font><font color="#0000bb">mcrypt_enc_get_iv_size</font><font color="#007700">(</font><font color="#0000bb">$td</font><font color="#007700">), </font><font color="#0000bb">MCRYPT_RAND</font><font color="#007700">);
<br></font><font color="#0000bb">$ks </font><font color="#007700">= </font><font color="#0000bb">mcrypt_enc_get_key_size</font><font color="#007700">(</font><font color="#0000bb">$td</font><font color="#007700">);
<br>
<br></font><font color="#ff8000">/* 生成 key */
<br></font><font color="#0000bb">$key </font><font color="#007700">= </font><font color="#0000bb">substr</font><font color="#007700">(</font><font color="#0000bb">md5</font><font color="#007700">(</font><font color="#dd0000">'very secret key'</font><font color="#007700">), </font><font color="#0000bb">0</font><font color="#007700">, </font><font color="#0000bb">$ks</font><font color="#007700">);
<br>
<br></font><font color="#ff8000">/* 初始化加密程序 */
<br></font><font color="#0000bb">mcrypt_generic_init</font><font color="#007700">(</font><font color="#0000bb">$td</font><font color="#007700">, </font><font color="#0000bb">$key</font><font color="#007700">, </font><font color="#0000bb">$iv</font><font color="#007700">);
<br>
<br></font><font color="#ff8000">/* 加密, $encrypted 保存的是已经加密后的数据 */
<br></font><font color="#007700">print </font><font color="#0000bb">$encrypted </font><font color="#007700">= </font><font color="#0000bb">mcrypt_generic</font><font color="#007700">(</font><font color="#0000bb">$td</font><font color="#007700">, </font><font color="#dd0000">'This is very important data'</font><font color="#007700">);
<br>
<br></font><font color="#ff8000">/* 检测加密句柄 */
<br></font><font color="#0000bb">mcrypt_generic_deinit</font><font color="#007700">(</font><font color="#0000bb">$td</font><font color="#007700">);
<br>
<br></font><font color="#ff8000">/* 初始化加密模块,用以解密 */
<br></font><font color="#0000bb">mcrypt_generic_init</font><font color="#007700">(</font><font color="#0000bb">$td</font><font color="#007700">, </font><font color="#0000bb">$key</font><font color="#007700">, </font><font color="#0000bb">$iv</font><font color="#007700">);
<br>
<br></font><font color="#ff8000">/* 解密 */
<br></font><font color="#0000bb">$decrypted </font><font color="#007700">= </font><font color="#0000bb">mdecrypt_generic</font><font color="#007700">(</font><font color="#0000bb">$td</font><font color="#007700">, </font><font color="#0000bb">$encrypted</font><font color="#007700">);
<br>
<br></font><font color="#ff8000">/* 检测解密句柄,并关闭模块 */
<br></font><font color="#0000bb">mcrypt_generic_deinit</font><font color="#007700">(</font><font color="#0000bb">$td</font><font color="#007700">);
<br></font><font color="#0000bb">mcrypt_module_close</font><font color="#007700">(</font><font color="#0000bb">$td</font><font color="#007700">);
<br>
<br></font><font color="#ff8000">/* 显示原始字符串 */
<br></font><font color="#007700">echo </font><font color="#0000bb">trim</font><font color="#007700">(</font><font color="#0000bb">$decrypted</font><font color="#007700">).</font><font color="#dd0000">"\n"</font><font color="#007700">;<br></font><font color="#0000bb"></font>
</font>
</code><hr>
声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
ThinkPHP6数据加密与解密:保护敏感数据安全ThinkPHP6数据加密与解密:保护敏感数据安全Aug 25, 2023 pm 10:52 PM

ThinkPHP6数据加密与解密:保护敏感数据安全概述:随着互联网的迅速发展,数据安全问题变得越来越重要。特别是在网络应用开发中,对于一些敏感数据的保护至关重要。ThinkPHP6框架提供了一套强大的数据加密与解密机制,通过对敏感数据进行加密处理,可以有效地提高数据的安全性。使用ThinkPHP6的加密函数ThinkPHP6框架内置了多种加密函数,可以根据需

Java开发技巧揭秘:实现数据加密与解密功能Java开发技巧揭秘:实现数据加密与解密功能Nov 20, 2023 pm 05:00 PM

Java开发技巧揭秘:实现数据加密与解密功能在当前信息化时代,数据安全成为一个非常重要的问题。为了保护敏感数据的安全性,很多应用程序都会使用加密算法来对数据进行加密。而Java作为一种非常流行的编程语言,也提供了丰富的加密技术和工具库。本文将揭秘一些Java开发中实现数据加密和解密功能的技巧,帮助开发者更好地保护数据安全。一、数据加密算法的选择Java支持多

PHP加密和解密函数大全:md5、sha1、base64_encode等函数的安全应用方法PHP加密和解密函数大全:md5、sha1、base64_encode等函数的安全应用方法Nov 18, 2023 pm 04:18 PM

PHP加密和解密函数大全:md5、sha1、base64_encode等函数的安全应用方法,需要具体代码示例在网络应用的开发中,数据的加密和解密是非常重要的。PHP作为一种流行的服务器端脚本语言,提供了多种加密和解密函数,本文将介绍常用的函数及其安全应用方法,并提供具体的代码示例。md5函数md5函数是最常见的一种加密函数,可以将任意长度的字符串转换为32位

CentOS中详细介绍Vim文本的加密和解密方法CentOS中详细介绍Vim文本的加密和解密方法Dec 31, 2023 pm 02:49 PM

CentOS用vim/vi给文件加密和解密一、利用vim/vi加密:优点:加密后,如果不知道密码,就看不到明文,包括root用户也看不了;缺点:很明显让别人知道加密了,容易让别人把加密的文件破坏掉,包括内容破坏和删除;vi编辑器相信大家都很熟悉了吧,vi里有一个命令是给文件加密的,举个例子吧:1)首先在root主目录/root/下建立一个实验文件text.txt:[root@www~]#vim/vitext.txt2)进到编辑模式,输入完内容后按ESC,然后输入:X(注意是大写的X),回车;3)

PHP和XML:如何实现数据的加密和解密PHP和XML:如何实现数据的加密和解密Aug 07, 2023 am 09:46 AM

PHP和XML:如何实现数据的加密和解密引言:在现代的互联网时代,数据的安全性越来越受到重视。其中,对于敏感数据的加密和解密成为了保护数据安全的重要手段之一。本文将通过使用PHP和XML来实现数据的加密和解密,并提供相关的代码示例。加密数据的实现使用PHP的加密函数,可以轻松实现对数据的加密。下面是一个使用AES加密算法对数据进行加密的示例代码://待加密

如何通过PHP ZipArchive实现对压缩包的加密和解密操作?如何通过PHP ZipArchive实现对压缩包的加密和解密操作?Jul 22, 2023 pm 04:36 PM

如何通过PHPZipArchive实现对压缩包的加密和解密操作?概述:PHPZipArchive是一种用于创建、打开和操作ZIP压缩文件的功能强大的类。尽管ZipArchive类本身并不直接提供加密和解密ZIP压缩文件的功能,但我们可以利用一些PHP扩展来实现对压缩包的加密和解密操作,如openssl扩展。在本文中,我们将介绍如何使用PHPZipArc

稿见AI助手解密:让人工智能成为您的写作得力助手!稿见AI助手解密:让人工智能成为您的写作得力助手!Aug 24, 2023 pm 03:01 PM

在当今数字化时代,人工智能技术正助力各行各业迎接新的挑战。当涉及到写作领域时,稿见AI助手成为了一个令人振奋的工具。本文将揭示如何让人工智能成为您写作的得力助手,并带您一起解密稿见AI助手的魅力与威力。1.独特的智能写作辅助功能通过智能化的算法和大数据分析,为写作提供全方位的辅助支持。从选题到结构规划,它能帮助您快速提炼关键信息,大大提升写作效率。它还能推荐相关的文献、期刊和学术论文,帮助您更好地调研和扩展研究领域。2.深入剖析文献,点亮灵感火花稿见AI助手在文献调研方面发挥着独特的作用。通过对

Vue技术开发中如何进行数据加密和解密Vue技术开发中如何进行数据加密和解密Oct 09, 2023 am 11:55 AM

Vue技术开发中如何进行数据加密和解密在Vue技术开发中,数据加密和解密是一项重要的安全措施。通过加密敏感数据可以防止数据泄露和盗取,保护用户的隐私和信息安全。本文将介绍如何在Vue中使用常用的加密算法进行数据加密和解密,并提供具体的代码示例。一、数据加密对称加密算法对称加密算法使用相同的密钥来进行加密和解密。常见的对称加密算法有DES、3DES、AES等。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。