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

歡迎訪問 生活随笔!

生活随笔

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

php

php des加密 和java胡同_PHP版本DES加密解(对应.net版与JAVA版)

發布時間:2023/12/20 php 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php des加密 和java胡同_PHP版本DES加密解(对应.net版与JAVA版) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

標簽:/**

*

*?DES?FOR?.NET版本

*?@author?Administrator

*

*/

class?DES_NET{

var?$key;

var?$iv;?//偏移量

function?DES_NET(?$key,?$iv=0?)?{

//key長度8例如:1234abcd

$this->key?=?$key;

if(?$iv?==?0?)?{

$this->iv?=?$key;?//默認以$key?作為?iv

}?else?{

$this->iv?=?$iv;?//mcrypt_create_iv?(?mcrypt_get_block_size?(MCRYPT_DES,?MCRYPT_MODE_CBC),?MCRYPT_DEV_RANDOM?);

}

}

function?encrypt($str)?{

//加密,返回大寫十六進制字符串

$size?=?mcrypt_get_block_size?(?MCRYPT_DES,?MCRYPT_MODE_CBC?);

$str?=?$this->pkcs5Pad?(?$str,?$size?);

return?strtoupper(?bin2hex(?mcrypt_cbc(MCRYPT_DES,?$this->key,?$str,?MCRYPT_ENCRYPT,?$this->iv?)?)?);

}

function?decrypt($str)?{

//解密

$strBin?=?$this->hex2bin(?strtolower(?$str?)?);

$str?=?mcrypt_cbc(?MCRYPT_DES,?$this->key,?$strBin,?MCRYPT_DECRYPT,?$this->iv?);

$str?=?$this->pkcs5Unpad(?$str?);

return?$str;

}

function?hex2bin($hexData)?{

$binData?=?"";

for($i?=?0;?$i?

$binData?.=?chr?(?hexdec?(?substr?(?$hexData,?$i,?2?)?)?);

}

return?$binData;

}

function?pkcs5Pad($text,?$blocksize)?{

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

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

}

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

}

}

/**

*

*?DES?JAVA版本

*?@author?Administrator

*

*/

class?DES_JAVA{

var?$key;

function?DES_JAVA(?$key?){

$this->key?=?$key;

}

function?encrypt($encrypt)?{

$encrypt?=?$this->pkcs5_pad($encrypt);

$iv?=?mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_DES,?MCRYPT_MODE_ECB),?MCRYPT_RAND);

$passcrypt?=?mcrypt_encrypt(MCRYPT_DES,?$this->key,?$encrypt,?MCRYPT_MODE_ECB,?$iv);

return?strtoupper(?bin2hex($passcrypt)?);

}

function?decrypt($decrypt)?{

//?$decoded?=?base64_decode($decrypt);

$decoded?=?pack("H*",?$decrypt);

$iv?=?mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_DES,?MCRYPT_MODE_ECB),?MCRYPT_RAND);

$decrypted?=?mcrypt_decrypt(MCRYPT_DES,?$this->key,?$decoded,?MCRYPT_MODE_ECB,?$iv);

return?$this->pkcs5_unpad($decrypted);

}

function?pkcs5_unpad($text){

$pad?=?ord($text{strlen($text)-1});

if?($pad?>?strlen($text))?return?$text;

if?(strspn($text,?chr($pad),?strlen($text)?-?$pad)?!=?$pad)?return?$text;

return?substr($text,?0,?-1?*?$pad);

}

function?pkcs5_pad($text){

$len?=?strlen($text);

$mod?=?$len?%?8;

$pad?=?8?-?$mod;

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

}

}

標簽:

總結

以上是生活随笔為你收集整理的php des加密 和java胡同_PHP版本DES加密解(对应.net版与JAVA版)的全部內容,希望文章能夠幫你解決所遇到的問題。

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