日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

3des java ecb_PHP 3DES加密 与JAVA通用 加密模式:ECB

發布時間:2025/3/21 php 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 3des java ecb_PHP 3DES加密 与JAVA通用 加密模式:ECB 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

昨天幫同事解決了一個接口加密的算法,同事是個小姑娘,不懂,所以老大派我協助她,所以我為了不在姑涼面前掉面子~~火速解決它...

甲方是電信,JAVA寫的接口,我一聽頭就大了,大家都知道~~PHP在加密算法上 與JAVA不太一樣,確切的說,PHP 3DES加密的填充方式使用0,而JAVA默認使用PKCS7填充,對方用的是PKCS5。

廢話不多說了,上代碼吧。

對方使用3DES,加密模式:ecb,填充方法:PKCS5

/**

*

* 加密函數

* 算法:des

* 加密模式:ecb

* 補齊方法:PKCS5

*

* @author 1336707969@qq.com

*/

function pkcs5_padding($text, $blocksize)

{

$pad = $blocksize - (strlen($text) % $blocksize);

return $text . str_repeat(chr($pad), $pad);

}

function pkcs5_unpadding($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);

}

$key = "*****";? //這里說一下,對方使用24位密鑰,如果要求36位,需要pack處理一下

$str = "abcdefg";

echo "明文為:".$str."
";

//加密方法

$m = MCRYPT_TRIPLEDES;

$iv = mcrypt_create_iv(mcrypt_get_iv_size($m,MCRYPT_MODE_ECB), MCRYPT_RAND);

$td = mcrypt_module_open(MCRYPT_3DES, '', MCRYPT_MODE_ECB, '');

mcrypt_generic_init($td, $key, $iv);

$str = base64_encode(mcrypt_generic($td,pkcs5_padding($str,8)));

echo "PHP加密后的密文為:".$str ."
";

mcrypt_generic_deinit($td);

mcrypt_module_close($td);

$td = mcrypt_module_open(MCRYPT_3DES, '', MCRYPT_MODE_ECB, '');

mcrypt_generic_init($td, $key, $iv);

$ttt? = pkcs5_unpad(mdecrypt_generic($td, base64_decode($str)));

mcrypt_generic_deinit($td);

mcrypt_module_close($td);

echo "解密后的明文為:".$ttt . "
";

echo "
";

?>

總結

以上是生活随笔為你收集整理的3des java ecb_PHP 3DES加密 与JAVA通用 加密模式:ECB的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。