国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Java Des加密 php版

CHENGKANG / 3506人閱讀

之前和Java對接使用到了des加密,在網上找到一個php版本,經過測試沒問題。

class des_class {

public $key;
function  des_class($key) 
{
    $this->key = $key;
}
function encrypt($input)
{
    $size  = mcrypt_get_block_size("des", "ecb");
    $input = $this->pkcs5_pad($input, $size);
    $key   = $this->key;
    $td    = mcrypt_module_open("des", "", "ecb", "");
    $iv    = @mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
    @mcrypt_generic_init($td, $key, $iv);
    $data = mcrypt_generic($td, $input);
    mcrypt_generic_deinit($td);
    mcrypt_module_close($td);
    $data = $this->byteArr2HexStr($this->getBytes($data));
    return $data;
}
function decrypt($encrypted)
{
    $encrypted = $this->array2str($this->hexStr2ByteArr($encrypted));
    $key =$this->key;
    $td  = mcrypt_module_open("des","","ecb","");
    //使用MCRYPT_DES算法,cbc模式
    $iv = @mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
    $ks = mcrypt_enc_get_key_size($td);
    @mcrypt_generic_init($td, $key, $iv);
    //初始處理
    $decrypted = mdecrypt_generic($td, $encrypted);
    //解密
    mcrypt_generic_deinit($td);
    //結束
    mcrypt_module_close($td);
    $y=$this->pkcs5_unpad($decrypted);
    return $y;
}
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);
}

/**
* 將字符串轉換為ASCII碼值數組,和array2str 互為可逆的轉換過程
*
* @param string需要轉換的字符串
* @return 轉換后的ASCII碼值數組
*/
function getBytes($string)
{
    $bytes = array();
    for($i = 0; $i < strlen($string); $i++){
        $bytes[] = ord($string[$i]);
    }
    return $bytes;
}
/**
* 將ASCII碼值數組轉換為字符串,和getBytes 互為可逆的轉換過程
*
* @param $array需要轉換的ASCII碼值數組
* @return 轉換后的字符串
*/
function array2str($array)
{
    $string = "";
    foreach ($array as $key => $value) {
        $string .= chr($value);
    }
    return $string;

}

/**
* 將數組轉換為表示16進制值的字符串,和hexStr2ByteArr(String strIn) 互為可逆的轉換過程
*
*
* @param array需要轉換的byte數組
* @return 轉換后的字符串
*/
public function byteArr2HexStr($array)
{
    $iLen = count($array);
    $return_str = "";
    for ($i = 0; $i < $iLen; $i++)
    {
        $intTmp = $array[$i];
        // 把負數轉換為正數
        while ($intTmp < 0) {
            $intTmp = $intTmp + 256;
        }

        $intTmp = dechex($intTmp);
        // 小于0F的數需要在前面補0
        if(hexdec($intTmp) < 16)
        {
            $intTmp = "0" . $intTmp;
        }
        $return_str =  $return_str . $intTmp;
    }

    return $return_str;
}

/**
* 將表示16進制值的字符串轉換為數組, 和byteArr2HexStr互為可逆的轉換過程
*
* @param $string 需要轉換的字符串
* @return 轉換后的數組
*/
public function hexStr2ByteArr($string)
{
    $len = strlen($string);

    $return = array();
    for($i=0;$i<$len;$i=$i+2)
    {
        $return[] = hexdec(substr($string,$i,2));
    }

    return $return;
}

}

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/25606.html

相關文章

  • JAVA加密算法(3)- 對稱加密算法(DES、3DES、AES)

    摘要:對稱加密算法概念加密密鑰和解密密鑰相同,大部分算法加密揭秘過程互逆。特點算法公開相比非對稱加密計算量小加密速度快效率高。 對稱加密算法概念 加密密鑰和解密密鑰相同,大部分算法加密揭秘過程互逆。 特點:算法公開、(相比非對稱加密)計算量小、加密速度快、效率高。 弱點:雙方都使用同樣的密鑰,安全性得不到保證。 常用對稱加密算法 DES(Data Encryption Standard...

    xiaoqibTn 評論0 收藏0
  • PHP DES-ECB加密對接Java解密

    摘要:最近公司有個業務,需要對接第三方接口,但是參數是需要加密的,對方也只提供了一個的,在網上到處搜索,沒有找到直接就能用的方法,后來還是跟公司的工程師對接出來的,在這里記錄一下大致的流程。 最近公司有個業務,需要對接第三方接口,但是參數是需要加密的,對方也只提供了一個java的demo,在網上到處搜索,沒有找到直接就能用的方法,后來還是跟公司的Android工程師對接出來的,在這里記錄一下...

    jsliang 評論0 收藏0
  • PHP DES-ECB加密對接Java解密

    摘要:最近公司有個業務,需要對接第三方接口,但是參數是需要加密的,對方也只提供了一個的,在網上到處搜索,沒有找到直接就能用的方法,后來還是跟公司的工程師對接出來的,在這里記錄一下大致的流程。 最近公司有個業務,需要對接第三方接口,但是參數是需要加密的,對方也只提供了一個java的demo,在網上到處搜索,沒有找到直接就能用的方法,后來還是跟公司的Android工程師對接出來的,在這里記錄一下...

    maybe_009 評論0 收藏0
  • php如何openssl_encrypt加密解密

    摘要:密鑰長度是位,超過位數密鑰被忽略。跨語言做加密解密經常會出現問題,往往是填充方式不對編碼不一致或者加密解密模式沒有對應上造成。是為了兼容用加密的結果。 最近在對接客戶的CRM系統,獲取令牌時,要用DES方式加密解密,由于之前沒有搞錯這種加密方式,經過請教了百度和谷歌兩個老師后,結合了多篇文檔內容后,終于實現了。 一、DES介紹 DES 是對稱性加密里面常見一種,全稱為 Data Enc...

    JouyPub 評論0 收藏0
  • killBase系列 -- 密碼學(一)

    摘要:系列密碼學二傳送門密碼學一基礎密碼學算法分類消息編碼消息摘要類,類,對稱密碼非對稱密碼數字簽名五元組明文原始信息。非對稱密碼包提供給,,等非對稱加密算法。對稱加密算法在分布式網絡系統上使用較為困難,主要是因為密鑰管理困難,使用成本較高。 前言 最近一場面試,面試官問了我 對稱加密與非對稱加密的問題,雖然曾經看過一些內容,但是沒有系統的整理,所以當被問的時候,腦子里一片空白,沒有回答上...

    tomato 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<