• PHP安全处理之Mcrypt使用总结


    http://blog.csdn.net/why_2012_gogo/article/details/51194673

    PHP安全处理之Mcrypt使用总结:

    我们知道在编写代码程序时,除了要保证代码的高性能,还有一个非常重要的,就是数据的安全。对于php而言,它本身提供了几种加密数据的办法,不过还是有限,对于满足特殊数据加解密方面有些欠缺,所以这里推荐使用的第三方拓展mcrypt库,它提供了类型、算法及模式繁多的加解密功能,那么下面来介绍下它的使用。

    ·     安装及配置

    ·     预定义常量

    ·     例子的验证

    一、安装及配置

    1、安装

    因为Mcrypt是作为拓展被PHP所使用,所以可参考PHP拓展文章:

    http://blog.csdn.net/why_2012_gogo/article/details/51120645

    2、配置

    对于mcrypt配置比较简单,我们只需要在php.ini中添加下面即可:

    extension=/usr/local/lib/php/extensions/no-debug-non-zts-20131226/mcrypt.so

    其实,也就是添加拓展加载而已。

    二、预定义常量

    Mcrypt支持的数据加密模式:

    MCRYPT_MODE_ECB (electronic codebook) :适用于随机数据, 比如可以用这种模式来加密其他密钥。 由于要加密的数据很短,并且是随机的,所以这种模式的缺点反而起到了积极的作用。

    MCRYPT_MODE_CBC (cipher block chaining) :特别适用于对文件进行加密。 相比 ECB, 它的安全性有明显提升。

    MCRYPT_MODE_CFB (cipher feedback) 对于每个单独的字节都进行加密, 所以非常适用于针对字节流的加密。

    MCRYPT_MODE_OFB (output feedback, in 8bit): 和 CFB 类似。它可以用在无法容忍加密错误传播的应用中。 因为它是按照 8 个比特位进行加密的, 所以安全系数较低,不建议使用。

    libmcrypt-2.4.x 或更高版本:

    MCRYPT_MODE_NOFB (output feedback, in nbit): 和 OFB 类似,但是更加安全, 因为它可以按照算法指定的分组大小来对数据进行加密。

    MCRYPT_MODE_STREAM 是一种扩展模式,它包含了诸如 "WAKE""RC4" 的流加密算法。

    三、例子的验证

    下面举例子来说明其使用:

    <?php

    // 256比特的密钥

                $key = hash('sha256', 'thisis a secret key', true);

                // 打开算法和模式

                $td = mcrypt_module_open('rijndael-256','','cbc','');

                // 创建初始向量

                $iv =mcrypt_create_iv(mcrypt_enc_get_iv_size($td),MCRYPT_DEV_URANDOM);

               

                echo '加密之前:This is a testting for mcryptuse!</br>';

               

                // 初始化加密

                mcrypt_generic_init($td,$key, $iv);

                // 加密字符串

                $encrypt_data =mcrypt_generic($td, 'This is a testting for mcrypt use!');

                // 输出加密后的内容

                echo '加密之后:'.$encrypt_data.'</br>';

                // 结束加密,执行清理工作

                mcrypt_generic_deinit($td);

               

                // 初始化解密

                mcrypt_generic_init($td,$key, $iv);

                // 解密密文

                $dencrypt_data =mdecrypt_generic($td, $encrypt_data);

                // 输出解密后的内容

                echo '解密之后:'.$dencrypt_data.'</br>';

                // 结束解密,执行清理工作

                mcrypt_generic_deinit($td);

               

                // 关闭加密模块

                mcrypt_module_close($td);

    ?>

    结果:

    好了,到这里我们已经介绍完了mcrypt的使用。

  • 相关阅读:
    c# 泛型总结
    透过字节码分析java基本类型数组的内存分配方式。
    c#索引器
    redis在asp.net 中的应用
    Unity3D shaderLab
    Unity3d Asset Store 打不开
    C# 类型转换的开销
    [转]权重算法
    Coroutine的原理以及实现
    在Unity3D里使用WinForm
  • 原文地址:https://www.cnblogs.com/youxianyen/p/7258677.html
Copyright © 2020-2023  润新知