成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Java Des加密 php版

CHENGKANG / 3516人閱讀

之前和Java對(duì)接使用到了des加密,在網(wǎng)上找到一個(gè)php版本,經(jīng)過測(cè)試沒問題。

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);
    //結(jié)束
    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);
}

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

}

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

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

    return $return_str;
}

/**
* 將表示16進(jìn)制值的字符串轉(zhuǎn)換為數(shù)組, 和byteArr2HexStr互為可逆的轉(zhuǎn)換過程
*
* @param $string 需要轉(zhuǎn)換的字符串
* @return 轉(zhuǎn)換后的數(shù)組
*/
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;
}

}

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/25606.html

相關(guān)文章

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

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

    xiaoqibTn 評(píng)論0 收藏0
  • PHP DES-ECB加密對(duì)接Java解密

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

    jsliang 評(píng)論0 收藏0
  • PHP DES-ECB加密對(duì)接Java解密

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

    maybe_009 評(píng)論0 收藏0
  • php如何openssl_encrypt加密解密

    摘要:密鑰長(zhǎng)度是位,超過位數(shù)密鑰被忽略??缯Z(yǔ)言做加密解密經(jīng)常會(huì)出現(xiàn)問題,往往是填充方式不對(duì)編碼不一致或者加密解密模式?jīng)]有對(duì)應(yīng)上造成。是為了兼容用加密的結(jié)果。 最近在對(duì)接客戶的CRM系統(tǒng),獲取令牌時(shí),要用DES方式加密解密,由于之前沒有搞錯(cuò)這種加密方式,經(jīng)過請(qǐng)教了百度和谷歌兩個(gè)老師后,結(jié)合了多篇文檔內(nèi)容后,終于實(shí)現(xiàn)了。 一、DES介紹 DES 是對(duì)稱性加密里面常見一種,全稱為 Data Enc...

    JouyPub 評(píng)論0 收藏0
  • killBase系列 -- 密碼學(xué)(一)

    摘要:系列密碼學(xué)二傳送門密碼學(xué)一基礎(chǔ)密碼學(xué)算法分類消息編碼消息摘要類,類,對(duì)稱密碼非對(duì)稱密碼數(shù)字簽名五元組明文原始信息。非對(duì)稱密碼包提供給,,等非對(duì)稱加密算法。對(duì)稱加密算法在分布式網(wǎng)絡(luò)系統(tǒng)上使用較為困難,主要是因?yàn)槊荑€管理困難,使用成本較高。 前言 最近一場(chǎng)面試,面試官問了我 對(duì)稱加密與非對(duì)稱加密的問題,雖然曾經(jīng)看過一些內(nèi)容,但是沒有系統(tǒng)的整理,所以當(dāng)被問的時(shí)候,腦子里一片空白,沒有回答上...

    tomato 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<