摘要:下文中我們將分別使用和來實現加解密,二者同步加解密的要點為使用何種填充算法。下面我們給出填充算法的實現填充算法移去填充算法默認使用自動對待加密數據進行填充以對齊加密算法數據塊長度。需固定使用,并通過調整的長度,來實現加密算法。
對稱加解密算法中,當前最為安全的是 AES 加密算法(以前應該是是 DES 加密算法),PHP 提供了兩個可以用于 AES 加密算法的函數簇:Mcrypt 和 OpenSSL。
其中 Mcrypt 在 PHP 7.1.0 中被 Deprecated,在 PHP 7.2.0 中被移除,所以即可起你應該使用 OpenSSL 來實現?AES 的數據加解密。
在一些場景下,我們不能保證兩套通信系統都使用了相函數簇去實現加密算法,可能 siteA 使用了最新的 OpenSSL 來實現了 AES 加密,但作為第三方服務的 siteB 可能仍在使用 Mcrypt 算法,這就要求我們必須清楚 Mcrypt 同 OpenSSL 之間的差異,以便保證數據加解密的一致性。
下文中我們將分別使用 Mcrypt 和 OpenSSL 來實現?AES-128/192/256-CBC 加解密,二者同步加解密的要點為:
1、使用何種填充算法。Mcrypt 自動使用 NUL("