ECB模式下PHP示例中的三重DES加密和解密

时间:2018-12-06 08:40:19

标签: php encryption tripledes

能否请您举一个完整的示例,说明如何用PHP语言创建加密和解密?我使用hexa作为数据和密钥。我通过Google搜索,发现有一个符合我期望的网站是here

以这个为例:

数据: 225551100012FFFF

密钥: DC1C1F2B180F85D8D522A75D2354ED149A5B81F198387B51

解密时,我得到了389da227862957c4

提前谢谢!

1 个答案:

答案 0 :(得分:-1)

从此网站http://www.isapp.it/en/menu-en/31-tips-a-tricks/php/118-php-how-to-encrypt-text-in-triple-des-ecb.html找到了我的答案

但是由于我想使用hexa对其进行加密和解密,因此我对此进行了一些修改

function cryptECB($crypt, $key) {
    //Omit hex2bin and bin2hex if plain text is used
    $crypt = hex2bin($crypt);
    $key = hex2bin($key);

    $iv_size = mcrypt_get_iv_size(MCRYPT_3DES, MCRYPT_MODE_ECB);
    $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);

    $cryptText = mcrypt_encrypt(MCRYPT_3DES, $key, $crypt, MCRYPT_MODE_ECB, $iv);

    return bin2hex($cryptText);
}

function decryptECB($encrypted, $key) {
    //Omit hex2bin and bin2hex if plain text is used
    $encrypted = hex2bin($encrypted);
    $key = hex2bin($key);
    $iv_size = mcrypt_get_iv_size(MCRYPT_3DES, MCRYPT_MODE_ECB);
    $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);

    $stringText = mcrypt_decrypt(MCRYPT_3DES, $key, $encrypted, MCRYPT_MODE_ECB, $iv);

    return bin2hex($stringText);
}