首頁 後端開發 php教程 PHP的des加密+ ECB方式+PKCS5 补齐

PHP的des加密+ ECB方式+PKCS5 补齐

Jun 13, 2016 pm 12:42 PM
data input mcrypt text

PHP的des加密+ ECB模式+PKCS5 补齐

/**
 * 
 * 加密函数
 * 算法:des
 * 加密模式:ecb
 * 补齐方法:PKCS5
 * 
 * @param unknown_type $input
 */
function encryptDesEcbPKCS5($input, $key) 
{ 
    $size = mcrypt_get_block_size('des', 'ecb'); 
    $input = pkcs5_pad($input, $size); 
    
    $td = mcrypt_module_open('des', '', 'ecb', ''); 
    //$iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND); 
    $iv = 0;
    mcrypt_generic_init($td, $key, $iv); 
    $data = mdecrypt_generic ($td, $input); 
    mcrypt_generic_deinit($td); 
    mcrypt_module_close($td); 
    //$data = base64_encode($data); 
    return $data; 
} 

/**
 * 解密函数
 * 算法:des
 * 加密模式:ecb
 * 补齐方法:PKCS5
 * @param unknown_type $input
 */
function decryptDesEcbPKCS5($input, $key) 
{ 
    $size = mcrypt_get_block_size('des', 'ecb'); 
   
    $td = mcrypt_module_open('des', '', 'ecb', ''); 
    $iv = 0;
    mcrypt_generic_init($td, $key, $iv); 
    $data = mcrypt_generic($td, $input); 
    mcrypt_generic_deinit($td); 
    mcrypt_module_close($td); 
    $data = pkcs5_unpad($data, $size); 
    //$data = base64_encode($data); 
    return $data; 
} 

function pkcs5_pad ($text, $blocksize) 
{ 
    $pad = $blocksize - (strlen($text) % $blocksize); 
    return $text . str_repeat(chr($pad), $pad); 
} 

function pkcs5_unpad($text) 
{ 
    $pad = ord($text{strlen($text) - 1}); 
    if ($pad > strlen($text)) 
    	return false; 
    if (strspn($text, chr($pad), strlen($text) - $pad) != $pad) 
    	return false; 
    return substr($text, 0, -1 * $pad); 
} 

$str = 'test crypt';
$key = 'jack11';
$res = encryptDesEcbPKCS5($str, $key);
echo "$res\n";


$deRes = decryptDesEcbPKCS5($res, $key);

echo "\n$deRes\n";
登入後複製

?

PHP的DES加密的补齐比较特殊,而且不能指定

http://www.herongyang.com/Cryptography/DES-PHP-Block-Padding-in-mcrypt.html

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1670
14
CakePHP 教程
1428
52
Laravel 教程
1329
25
PHP教程
1274
29
C# 教程
1256
24
php 怎麼替換mcrypt php 怎麼替換mcrypt Oct 31, 2022 am 09:46 AM

php替換mcrypt的方法:1、開啟對應的php檔案;2、找到原始的加密和解密程式碼;3、使用「openssl_encrypt」以及「openssl_decrypt」方法來替換即可。

laravel input隱藏域怎麼實現 laravel input隱藏域怎麼實現 Dec 12, 2022 am 10:07 AM

laravel input隱藏域的實作方法:1、找到並開啟Blade模板檔案;2、在Blade模板中使用method_field方法來建立隱藏域,其建立語法為「{{ method_field('DELETE') }}」。

vue3怎麼封裝input元件和統一表單數據 vue3怎麼封裝input元件和統一表單數據 May 12, 2023 pm 03:58 PM

準備工作用vuecreateexample建立項目,參數大概如下:用原生input原生的input,主要是value和change,資料在change的時候需要同步。 App.tsx如下:import{ref}from'vue';exportdefault{setup(){//username就是資料constusername=ref('張三');//輸入框變化的時候,同步資料constonInput=;return( )=>({

點選input框沒有遊標怎麼辦 點選input框沒有遊標怎麼辦 Nov 24, 2023 am 09:44 AM

點選input框沒有遊標的解決方法:1、確認輸入框焦點;2、清除瀏覽器快取;3、更新瀏覽器;4、使用JavaScript;5、檢查硬體設備;6、檢查輸入框屬性;7、調試JavaScript程式碼;8、檢查頁面其他元素;9、考慮瀏覽器相容性。

Vue文件中的input框綁定事件詳解 Vue文件中的input框綁定事件詳解 Jun 21, 2023 am 08:12 AM

Vue.js是一種輕量級的JavaScript框架,具有易用、高效和靈活的特點,是目前廣受歡迎的前端框架之一。在Vue.js中,input框綁定事件是十分常見的需求,本文將詳細介紹Vue文件中的input框綁定事件。一、基礎概念在Vue.js中,input框綁定事件指的是將輸入框的值綁定到Vue實例的資料物件中,從而實現輸入和回應的雙向綁定。在Vue.j

Vue文檔中的input框回車事件和驗證函數使用方法 Vue文檔中的input框回車事件和驗證函數使用方法 Jun 20, 2023 am 09:13 AM

Vue是一個流行的JavaScript前端框架,它的核心是響應式資料綁定和元件系統。在Vue的應用程式中,input框是最常用的UI元素之一。在使用者輸入文字時,我們希望可以監聽回車事件,並且在提交前對輸入內容進行驗證。本篇文章將介紹Vue文件中的input框回車事件和驗證函數使用方法。一、Vue中input框回車事件在Vue中監聽input框的回車事件非常簡

data資料夾裡面是什麼數據 data資料夾裡面是什麼數據 May 05, 2023 pm 04:30 PM

data資料夾裡面是系統及程式的數據,例如軟體的設定和安裝包等,Data資料夾中各個資料夾則代表的是不同類型的資料存放資料夾,無論Data資料指的是檔案名稱Data還是擴充名data,都是系統或程式自訂的資料文件,Data是資料保存的備份類別文件,一般可以用meidaplayer、記事本或word開啟。

使用Python的input()函數從使用者取得輸入 使用Python的input()函數從使用者取得輸入 Aug 22, 2023 am 11:21 AM

標題:使用Python的input()函數從使用者取得輸入在編寫程式時,經常需要從使用者取得輸入。 Python提供了一個內建函數input(),可以用來取得並接收使用者的輸入。本文將介紹如何使用input()函數以及一些常見的應用場景。 input()函數用法非常簡單,它接受一個可選的提示訊息作為參數,並等待使用者輸入。使用者輸入之後,input()函數會傳回一個

See all articles