国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

PHP 3DES加密

這篇具有很好參考價值的文章主要介紹了PHP 3DES加密。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

不多說,直接上代碼類

然后自行依據實際情況調用即可

<?php

class STD3Des {

    public static function encrypt($str, $key='xxx') {
        $message = $str;
        $iv = '';

        $message_padded = $message;
        $message_padded = self::pkcs5_pad($message_padded, 8);
        if (strlen($message_padded) % 8) {
            $message_padded = str_pad($message_padded, strlen($message_padded) + 8 - strlen($message_padded) % 8, "\0");
        }
        //$message_padded = self::pkcs5_pad($message_padded, 8);//原來是在這打包的,運行了一下發(fā)現密文不一樣,就改到上面了
//        $encrypted_mcrypt = mcrypt_encrypt(MCRYPT_3DES, $key,
//                self::pkcs5_pad($message, 8), MCRYPT_MODE_ECB, $iv);
        $encrypted_openssl = openssl_encrypt($message_padded, "DES-EDE3", $key, OPENSSL_RAW_DATA | OPENSSL_NO_PADDING);
        //return strtoupper(bin2hex($encrypted_mcrypt));
        return bin2hex($encrypted_openssl);
    }

    public static function encrypt_ECB($str, $key) {
        $message = $str;
        $iv = '';

        $message_padded = $message;
        $message_padded = self::pkcs5_pad($message_padded, 8);
        if (strlen($message_padded) % 8) {
            $message_padded = str_pad($message_padded, strlen($message_padded) + 8 - strlen($message_padded) % 8, "\0");
        }
        //$message_padded = self::pkcs5_pad($message_padded, 8);//原來是在這打包的,運行了一下發(fā)現密文不一樣,就改到上面了
//        $encrypted_mcrypt = mcrypt_encrypt(MCRYPT_3DES, $key,
//                self::pkcs5_pad($message, 8), MCRYPT_MODE_ECB, $iv);
        $encrypted_openssl = openssl_encrypt($message_padded, "DES-EDE3", $key, OPENSSL_RAW_DATA | OPENSSL_NO_PADDING);
        //return strtoupper(bin2hex($encrypted_mcrypt));
        //return bin2hex($encrypted_openssl);
        return base64_encode($encrypted_openssl);
    }

    public static function decrypt_ECB($encrypted, $key) {//數據解密
        $data = base64_decode($encrypted);
//        $data = $encrypted;
        $decrypted_openssl = openssl_decrypt($data, 'DES-EDE3', $key, OPENSSL_RAW_DATA);
        return $decrypted_openssl;
    }

    public static function encrypt_CFB8($str, $key, $iv) {
        $message = $str;

        $message_padded = $message;
        $message_padded = self::pkcs5_pad($message_padded, 8);
        if (strlen($message_padded) % 8) {
            $message_padded = str_pad($message_padded, strlen($message_padded) + 8 - strlen($message_padded) % 8, "\0");
        }
        $encrypted_openssl = openssl_encrypt($message_padded, "DES-EDE3-CFB8", $key, OPENSSL_RAW_DATA | OPENSSL_NO_PADDING, $iv);
        return base64_encode($encrypted_openssl);
    }

    public static function decrypt($encrypted, $key) {//數據解密
        $data = hex2bin($encrypted);
//        $data = $encrypted;
        $decrypted_openssl = openssl_decrypt($data, 'DES-EDE3', $key, OPENSSL_RAW_DATA);
        return $decrypted_openssl;
    }

    private static function pkcs5_pad($text, $blocksize) {
        $pad = $blocksize - (strlen($text) % $blocksize);
        return $text . str_repeat(chr($pad), $pad);
    }

}

//$encrypted_openssl =STD3Des::encrypt('0123456789', 'test0123456789');
//echo 'encrypted_openssl=='.$encrypted_openssl.'<br />';
//034dcda761d12373f82b025355c6870d
//echo STD3Des::decrypt($encrypted_openssl, 'test0123456789');
/**
 * 
  (1)進行3DES加密(ECB模式)。注:加密密鑰不足24位長度時后面補0,超過24位長度時需截取前24位字符。
  (2)將加密后的密文進行hex轉換。
  3DES測試結果比對:
  密鑰:test0123456789
  測試數據:0123456789
  加密結果:034dcda761d12373f82b025355c6870d
 */
?>

自行了解引用,有測試示例在代碼中

1.

2.

3.

4.

5.

6.

7.文章來源地址http://www.zghlxwxcb.cn/news/detail-537148.html

到了這里,關于PHP 3DES加密的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • JavaScript學習 -- 對稱加密算法3DES

    JavaScript學習 -- 對稱加密算法3DES

    在現代的互聯(lián)網時代,數據安全性備受關注。為了保護敏感數據的機密性,對稱加密算法是一種常用的方法。在JavaScript中,3DES(Triple Data Encryption Standard)是一種常用的對稱加密算法。本篇博客將為您展示如何在JavaScript中使用3DES算法進行加密和解密,并提供一個實際的例子

    2024年02月14日
    瀏覽(37)
  • Java 中常見的加密算法,DES、3DES、AES、RSA

    Java 中常見的加密算法,DES、3DES、AES、RSA

    加密算法是一種將數據轉換為不可讀形式的算法,以保護數據的機密性和完整性。加密算法被廣泛應用于計算機網絡、數據庫、電子商務等領域,用于保護敏感數據的安全性,如用戶密碼、信用卡信息、醫(yī)療記錄等。在 Java 中,有許多常見的加密算法,本文將對加密算法的基

    2024年02月03日
    瀏覽(33)
  • 關于怎么使用python實現 3DES 加密/解密

    3DES (Triple DES) 是一種對稱加密算法,其特點是使用三次密鑰加密來提高安全性。 3DES的原理是:對明文進行三次加密,每次加密的密鑰不同。加密時,首先使用第一個密鑰對明文進行加密,然后使用第二個密鑰對加密后的數據進行解密,最后再使用第三個密鑰對解密后的數據

    2024年02月15日
    瀏覽(22)
  • Sweet32漏洞,升級openssl或者禁用3DES和DES弱加密算法

    由于等保的原因,被服務商掃描出漏洞。 warnings: | 64-bit block cipher 3DES vulnerable to SWEET32 attack 如何不喜歡使用nmap,也可以使用如下工具testssl.sh,但是輸出的內容太多了,本次我只截取部分 解決辦法有兩個,一個是升級OpenSSL 1.0.2k-fips 26 Jan 2017 以上,另外一個是更新nginx配置,禁

    2024年02月11日
    瀏覽(27)
  • 通俗易懂,十分鐘讀懂DES,詳解DES加密算法原理,DES攻擊手段以及3DES原理。Python DES實現源碼

    通俗易懂,十分鐘讀懂DES,詳解DES加密算法原理,DES攻擊手段以及3DES原理。Python DES實現源碼

    DES(Data Encryption Standard)是一種 對稱加密 算法。它是在20世紀70年代初期由IBM研發(fā)的。它的設計目標是提供高度的數據安全性和性能,并且能夠在各種硬件和軟件平臺上實現。 DES使用56位的密鑰和64位的明文塊進行加密。DES算法的分組大小是64位,因此,如果需要加密的明文長

    2024年02月03日
    瀏覽(28)
  • Python 基于pycryptodome,實現對AES、DES、3DES、RSA等常用加密算法的使用,文末附各種加密的源碼示例

    (中文名:加密圓頂)pycryptodome是一個基于c實現的Python庫,它在2.x中支持2.7以上版本,或3.x中支持3.5以上版本的Python。 可以使用以下命令安裝它: 該庫支持以下特性 認證加密模式 Authenticated encryption modes (GCM, CCM, EAX, SIV, OCB) AES加密在英特爾上的加速 Accelerated AES on Intel platf

    2023年04月09日
    瀏覽(36)
  • 【ios】【android】3DES_CBC_PKCS5Padding加密、解密問題(附完整代碼)

    【ios】【android】3DES_CBC_PKCS5Padding加密、解密問題(附完整代碼)

    問題一:加密結果不一致 一、問題描述 實現了android的藍牙對接后開始著手ios的藍牙對接,出現了ios加密結果與在線加密的結果一致,而android的加密結果與甲方公司的結果一致的問題。 1.android部分代碼如下: 2.ios部分代碼如下: 二、問題解決 重新看了一遍android加密調用部

    2023年04月18日
    瀏覽(33)
  • Java實現3DES加密解密(DESede/ECB/PKCS5Padding使用)

    Java實現3DES加密解密(DESede/ECB/PKCS5Padding使用)

    3DES(又叫Triple DES)是三重數據加密算法(TDEA,Triple Data Encryption Algorithm)塊密碼的通稱。 它相當于是對每個數據塊 應用三次DES加密算法 。密鑰長度是128位,192位(bit),如果密碼位數少于等于64位,加密結果與DES相同。 原版DES容易被破解,新的3DES出現,增加了加密安全性,避

    2023年04月09日
    瀏覽(29)
  • 3DES實驗 思考與練習:

    3DES實驗 思考與練習:

    T1:關于3DES的分析 和 庫函數的思考——完全領悟了?。?! 分析過程: T(2): 使用openssl庫函數 實現 DES加密: 使用函數DES_ecb_encrypt來進行數據加解密 void DES_ecb_encrypt(const_DES_cblock *input,DES_cblock *output, DES_key_schedule *ks,int enc); 函數功能說明:DES ECB計算 參數說明: input: 輸入數據;

    2024年02月03日
    瀏覽(22)
  • 密碼學之DES,3DES與Python實現AES

    最近項目中需要用到DES,3DES解密算法,所以了解一下。正好CSDN上有關于DES,3DES的資料。邊看邊寫一下總結。 密碼學之DES,3DES詳解與Python實現 DES(Data Encryption Standard-數據加密標準)屬于對稱加密,即使用相同的密鑰來完成加密和解密。分組長度為8個字節(jié)64bit(密鑰每個字節(jié)的最

    2024年02月08日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包