我会保持简短和简单。作为 PHP 的 mcrypt 库的一部分,有 40 种左右可能的密码,请参见此处。
我自己对加密知之甚少,无论使用何种密码,我都在假设,解密时的数据与加密的数据相同(否则有什么意义?)
我需要加密然后解密一个数组或序列化的标准对象。我在网上浏览了几个关于 mcrypt 库的基本实现的示例,并注意到每个示例都使用了不同的密码。这让我想知道这是否有任何意义,或者仅仅是个人喜好?
我的问题是,这些密码之间是否有任何显着差异,我应该知道
- 我将加密/解密的是一个数组或序列化的标准对象,并且包含相对较少的数据。
- 此操作将相当少见,因此速度不是一个大问题,< 2s 范围内的任何地方都是可以接受的。
- 加密后的字符串需要存储在 cookie 中,并通过 url 查询字符串传输(因此对长度和字符集有限制)
笔记
我不是在争论我应该使用哈希还是 hmac。加密是必要的,也是解决此问题的正确选项。