不多说,直接上代码类 然后自行依据实际情况调用即可 自行了解引用,有测试示例在代码中 来源地址:https://blog.csdn.net/Purgatory001/article/details/12753759
不多说,直接上代码类
然后自行依据实际情况调用即可
PHPclass 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);//原来是在这打包的,运行了一下发现密文不一样,就改到上面了// $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);//原来是在这打包的,运行了一下发现密文不一样,就改到上面了// $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.'
';//034dcda761d12373f82b025355c6870d//echo STD3Des::decrypt($encrypted_openssl, 'test0123456789');?>
自行了解引用,有测试示例在代码中
来源地址:https://blog.csdn.net/Purgatory001/article/details/127537594
--结束END--
本文标题: PHP 3DES加密
本文链接: https://www.lsjlt.com/news/423121.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0