PHP安全處理之Mcrypt使用總結

來源:互聯網
上載者:User

標籤:類型   執行   有一個   isis   book   his   定義   sha   錯誤   

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的使用。

 

PHP安全處理之Mcrypt使用總結

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.