发现      搜索      发帖    

正在删除

在PHP7.1中使用openssl取代mcrypt 分享

0
avatar
文|一不小心爱上你    20天前

从 PHP 7.0 升级到 PHP 废弃了一个在过去普遍应用的扩展(mcrypt),但是微信官方提供的消息加密解密算法中的核心部分中确实使用 mcrypt 的,Prpcrypt class 的加密方法(encrypt)和解密方法(decrypt),怎么改成 openssl 的函数呢?

/** * 对明文进行加密 * @param string $text 需要加密的明文 * @return string 加密后的密文 */public function encrypt($text, $appid){    try {        /**        *原来代码        */        $iv = substr($this->key, 0, 16);        $encrypted = openssl_encrypt($text,'AES-256-CBC',$this->key,OPENSSL_ZERO_PADDING,$iv);        return array(ErrorCode::$OK, $encrypted);    } catch (Exception $e) {        //print $e;        return array(ErrorCode::$EncryptAESError, null);    }}/** * 对密文进行解密 * @param string $encrypted 需要解密的密文 * @return string 解密得到的明文 */public function decrypt($encrypted, $appid){    try {        $iv = substr($this->key, 0, 16);                  $decrypted = openssl_decrypt($encrypted,'AES-256-CBC',$this->key,OPENSSL_ZERO_PADDING,$iv);    } catch (Exception $e) {        return array(ErrorCode::$DecryptAESError, null);    }    /**    *原来代码    */}
编辑