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

歡迎訪問 生活随笔!

生活随笔

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

php

php 3des 兼容java,PHP版3DES加解密类,可与java的3DES(DESede)加密方式兼容

發布時間:2024/4/20 php 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php 3des 兼容java,PHP版3DES加解密类,可与java的3DES(DESede)加密方式兼容 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

/**

*

* PHP版3DES加解密類

*

* 可與java的3DES(DESede)加密方式兼容

*

* @Author: Luo Hui (farmer.luo at gmail.com)

*

* @version: V0.1 2008.12.04

*

*/

class Crypt3Des

{

public $key??? = "01234567890123456789012345678912";

public $iv??? = "23456789"; //like java: private static byte[] myIV = { 50, 51, 52, 53, 54, 55, 56, 57 };

//加密

public function encrypt($input)

{

$input = $this->padding( $input );

$key = base64_decode($this->key);

$td = mcrypt_module_open( MCRYPT_3DES, ”, MCRYPT_MODE_CBC, ”);

//使用MCRYPT_3DES算法,cbc模式

mcrypt_generic_init($td, $key, $this->iv);

//初始處理

$data = mcrypt_generic($td, $input);

//加密

mcrypt_generic_deinit($td);

//結束

mcrypt_module_close($td);

$data = $this->removeBR(base64_encode($data));

return $data;

}

//解密

public function decrypt($encrypted)

{

$encrypted = base64_decode($encrypted);

$key = base64_decode($this->key);

$td = mcrypt_module_open( MCRYPT_3DES,”,MCRYPT_MODE_CBC,”);

//使用MCRYPT_3DES算法,cbc模式

mcrypt_generic_init($td, $key, $this->iv);

//初始處理

$decrypted = mdecrypt_generic($td, $encrypted);

//解密

mcrypt_generic_deinit($td);

//結束

mcrypt_module_close($td);

$decrypted = $this->removePadding($decrypted);

return $decrypted;

}

//填充密碼,填充至8的倍數

public function padding( $str )

{

$len = 8 – strlen( $str ) % 8;

for ( $i = 0; $i < $len; $i++ )

{

$str .= chr( 0 );

}

return $str ;

}

//刪除填充符

public function removePadding( $str )

{

$len = strlen( $str );

$newstr = "";

$str = str_split($str);

for ($i = 0; $i < $len; $i++ )

{

if ($str[$i] != chr( 0 ))

{

$newstr .= $str[$i];

}

}

return $newstr;

}

//刪除回車和換行

public function removeBR( $str )

{

$len = strlen( $str );

$newstr = "";

$str = str_split($str);

for ($i = 0; $i < $len; $i++ )

{

if ($str[$i] != ‘n’ and $str[$i] != ‘r’)

{

$newstr .= $str[$i];

}

}

return $newstr;

}

}

//test

$input = "1qaz2ws";

echo "plainText:" . $input."
";

$crypt = new Crypt3Des();

echo "Encode:".$crypt->encrypt($input)."
";

echo "Decode:".$crypt->decrypt($crypt->encrypt($input));

?>

結果:

plainText:1qaz2ws

Encode:0GsXgYA8BuM=

Decode:1qaz2ws

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的php 3des 兼容java,PHP版3DES加解密类,可与java的3DES(DESede)加密方式兼容的全部內容,希望文章能夠幫你解決所遇到的問題。

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