FeiYan

网站导航

搜索

腾讯微博 新浪微博 FeelBLog 开源中国社区

PHP AES双向加密解密(128位)

2014-05-06 10:26:46     1个评论     30378次访问

如题,128位加密解密,用途广泛。

/**
 用法:
 Security::encrypt($str,$key);
 Security::decrypt($str,$key);
 */
class Security {
    public static function encrypt($input, $key) {
        $size = mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_ECB);
        $input = Security::pkcs5_pad($input, $size);
        $td = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_ECB, '');
        $iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
        mcrypt_generic_init($td, $key, $iv);
        $data = mcrypt_generic($td, $input);
        mcrypt_generic_deinit($td);
        mcrypt_module_close($td);
        $data = base64_encode($data);
        return $data;
    }
 
    private static function pkcs5_pad ($text, $blocksize) {
        $pad = $blocksize - (strlen($text) % $blocksize);
        return $text . str_repeat(chr($pad), $pad);
    }
 
    public static function decrypt($sStr, $sKey) {
        $decrypted= mcrypt_decrypt(
            MCRYPT_RIJNDAEL_128,
            $sKey,
            base64_decode($sStr),
            MCRYPT_MODE_ECB
        );
        $dec_s = strlen($decrypted);
        $padding = ord($decrypted[$dec_s-1]);
        $decrypted = substr($decrypted, 0, -$padding);
        return $decrypted;
    }
}

代码源自网络。

文章标签: php  aes 

本文地址:PHP AES双向加密解密(128位)

相关文章

2009-08-20:常用PHP类建站程序和源码

2009-11-06:PHP中出现Notice: Undefined index的三种解决办法

2011-01-09:PHP转换IP地址到真实地址

2011-11-03:PHP转换汉字拼音和Unicode

2011-11-29:EditPlus 3.x 配置PHP开发环境

2012-08-17:用PHP开发一个自己的博客

2012-09-03:高性能网站架构基础篇

2012-09-17:常用PHP正则表达式

2012-09-17:Ubuntu编译Yaf

2012-09-19:使用Pecl或Pear安装PHP扩展

1 Comments »

  1. 像蛋哥一样抛弃博客好多年的天涯像蛋哥一样抛弃博客好多年的天涯
    蛋哥,PHP-7.1中mcrypt扩展已被废弃了,还用途广泛个蛋蛋啊,赶紧更新吧。

    2017-11-11 20:50:48   

发布评论

最新评论

  1. 像蛋哥一样抛弃博客好多年的天涯像蛋哥一样抛弃博客好多年的天涯

    蛋哥,PHP-7.1中mcrypt扩展已被废弃了,还用途广泛个蛋蛋啊,赶紧更新吧。

  2. SpecsSpecs

    不错~~

  3. zhyzhy

    我也遇到这个问题 不知道是swf 、jcrop 、 uploadify 还是浏览器缓存