PHP 3DES 加密解密

2021-08-31 03:05:31 字數 1939 閱讀 4706

php 3des 加密解密:

<?php

/*** created by phpstorm.

* user: asus

* date: 2017/3/24

* time: 11:06

*/class encrypt

public function paddingpkcs7($data)

/*** 對字串進行3des加密

* @param string 要加密的字串

* @return mixed 加密成功返回加密後的字串,否則返回false

*/public function encrypt3des($str)

//檢查加密key,iv的長度是否符合演算法要求

$key = $this->fixlen($this->_key, mcrypt_enc_get_key_size($td));

$iv = $this->fixlen($this->_iv, mcrypt_enc_get_iv_size($td));

//加密資料長度處理

$str = $this->paddingpkcs7($str);

if (mcrypt_generic_init($td, $key, $iv) !== 0)

$result = mcrypt_generic($td, $str);

mcrypt_generic_deinit($td);

mcrypt_module_close($td);

return $result;

}/**

* 對加密的字串進行3des解密

* @param string 要解密的字串

* @return mixed 加密成功返回加密後的字串,否則返回false

*/public function decrypt3des($str)

//檢查加密key,iv的長度是否符合演算法要求

$key = $this->fixlen($this->_key, mcrypt_enc_get_key_size($td));

$iv = $this->fixlen($this->_iv, mcrypt_enc_get_iv_size($td));

if (mcrypt_generic_init($td, $key, $iv) !== 0)

$result = mdecrypt_generic($td, $str);

mcrypt_generic_deinit($td);

mcrypt_module_close($td);

return $this->strunpad($result);

}/**

* 返回適合演算法長度的key,iv字串

* @param string $str key或iv的值

* @param int $td_len 符合條件的key或iv長度

* @return string 返回處理後的key或iv值

*/private function fixlen($str, $td_len)

else if($str_len < $td_len)

return $str;

}/**

* 返回適合演算法的分組大小的字串長度,末尾使用\0補齊

* @param string $str 要加密的字串

* @param int $td_group_len 符合演算法的分組長度

* @return string 返回處理後字串

*/private function strpad($str, $td_group_len)

/*** 返回適合演算法的分組大小的字串長度,末尾使用\0補齊

* @param string $str 要加密的字串

* @return string 返回處理後字串

*/private function strunpad($str)

}

iOS AES加密 解密 3DES加密 解密

加密步驟 字串經過aes加密得到nsdata型別,然後在對加密後的nsdata型別進行base64轉碼,得出最終的字串。解密步驟 對要解密的字串進行base64解碼,然後進行解密,得出原字串。首先建立乙個nsdata jkencrypt類別,寫完的.件如下 import inte ce nsdata...

Des與3Des加密解密

des和3des演算法 public class des b ret.tostring return ret.tostring 3des加密 金鑰不能每8位重複,例如 123456781234567812345678,如果這樣則演算法退化為des,c 會檢測,不能使用 明文 金鑰 public st...

DES加密解密

using system using system.drawing using system.collections using system.componentmodel using system.windows.forms using system.data using system.io us...