Yii 實現數據加密和解密的示例代碼

 更新時間:2020年01月13日 15:38:11   作者:huaweichenai   我要評論
這篇文章主要介紹了Yii 實現數據加密和解密的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

在Yii中又很多的數據我們不能夠以明文進行存儲和展示,例如密碼和一些比較重要的文件信息,這時候我們都需要我們對這些信息進行加密

一:對密碼進行加密和驗證客戶端傳輸的密碼是否正確

1:對密碼進行加密

$hash = Yii::$app->getSecurity()->generatePasswordHash($password);

2:對客戶端傳遞的密碼進行驗證,判斷是否正確

//$password:客戶端傳遞的明文密碼,$hash:對密碼進行加密后的哈希值 
if (Yii::$app->getSecurity()->validatePassword($password, $hash)) { 
  // 驗證成功(密碼正確) 
} else { 
  // 驗證失敗(密碼錯誤) 
}

二:生成一個偽隨機數據

在我們進行密碼重置的時候,我們經常會發送一份郵件到用戶郵箱中,給他一個重置的密碼,這時候我們就可以使用Yii的偽隨機數據方法給用戶生成一個偽隨機數據作為密碼

//默認生成32為隨機字符,可以指定位數生成指定位數的偽隨機數 
$key = Yii::$app->getSecurity()->generateRandomString();

三:Yii常見的數據加密和解密

Yii常見的加密方法有:encryptByPassword()和encryptByKey()

Yii常見的解密方法有:decryptByPassword()和decryptByKey()

1:encryptByPassword()和decryptByPassword()

加密:

//$data:需要加密的信息,$secretKey:加密時使用的密鑰(key) 
$encryptedData = Yii::$app->getSecurity()->encryptByPassword($data, $secretKey); 

解密:

//$encryptedData:需要解密的信息,$secretKey:加密時使用的密鑰(key) 
$data = Yii::$app->getSecurity()->decryptByPassword($encryptedData, $secretKey); 

1:encryptByKey()和decryptByKey()

加密:

//$data:需要加密的信息,$secretKey:加密時使用的密鑰(key) 
$encryptedData = Yii::$app->getSecurity()->encryptByKey($data, $secretKey); 

解密:

//$encryptedData:需要解密的信息,$secretKey:加密時使用的密鑰(key) 
$data = Yii::$app->getSecurity()->decryptByKey($encryptedData, $secretKey);

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:

相關文章

  • PHP 接入支付寶即時到賬功能

    PHP 接入支付寶即時到賬功能

    這篇文章主要介紹了PHP 接入支付寶即時到賬功能,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-09-09
  • wampserver改變默認網站目錄的辦法

    wampserver改變默認網站目錄的辦法

    大家在做php項目時,很多項目都會用到wampserver。WampServe集成了Apache、MySQL、PHP、phpmyadmin,支持Apache的mod_rewrite,PHP擴展、Apache模塊只需要在菜單“開啟/關閉”上點點就搞定,省去了修改配置文件的麻煩,這里就簡寫成wamp。
    2015-08-08
  • php實現文件下載實例分享

    php實現文件下載實例分享

    php實現對文件的下載需要了解一定的http協議基礎,php實現下載用到四條http協議的信息,用header進行會寫處理
    2014-06-06
  • PHP靜態成員變量和非靜態成員變量詳解

    PHP靜態成員變量和非靜態成員變量詳解

    數據成員可以分靜態變量、非靜態變量兩種.這篇文章主要介紹了PHP靜態成員變量和非靜態成員變量,需要的朋友可以參考下
    2017-02-02
  • php下載excel無法打開的解決方法

    php下載excel無法打開的解決方法

    php下載excel后無法打開的解決方法和注意事項,大家參考使用吧
    2013-12-12
  • thinkPHP5.0框架引入Traits功能實例分析

    thinkPHP5.0框架引入Traits功能實例分析

    這篇文章主要介紹了thinkPHP5.0框架引入Traits功能,結合實例形式分析了Traits的概念、功能及thinkPHP5.0中Traits功能的使用方法,需要的朋友可以參考下
    2017-03-03
  • laravel安裝和配置教程

    laravel安裝和配置教程

    這篇文章主要介紹了laravel安裝和配置教程,需要的朋友可以參考下
    2014-10-10
  • CodeIgniter實現更改view文件夾路徑的方法

    CodeIgniter實現更改view文件夾路徑的方法

    這篇文章主要介紹了CodeIgniter實現更改view文件夾路徑的方法,需要的朋友可以參考下
    2014-07-07
  • 簡單PHP會話(session)說明介紹

    簡單PHP會話(session)說明介紹

    下面小編就為大家帶來一篇簡單PHP會話(session)說明介紹。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-08-08
  • Nginx下配置codeigniter框架方法

    Nginx下配置codeigniter框架方法

    由于項目遷移,不得不在Nginx下配置codeigniter框架,開始怎么配置都不成功,經過度娘以及眾網友的熱心幫忙,終于完成了正確的設置,這里分享給大家,有需要的小伙伴參考下
    2015-04-04

最新評論

pc蛋蛋幸运28app下载地址