OpenSSL 还是 Mcrypt? (openssl_encrypt 或 mcrypt_encrypt)
OpenSSL or Mcrypt? (openssl_encrypt or mcrypt_encrypt)
我想这是一个优缺点的问题。
对于简单的数据加密:
与 mcrypt_encrypt
相比,使用 openssl_encrypt
的真正好处是什么?
不要使用 mcrypt。如果您在代码中输入单词 mcrypt,您可能会犯错误。尽管可以提供一个构建在 mcrypt 之上的相对安全的加密库(defuse/php-encryption 的早期版本做到了),但将您的代码切换到 openssl 将提供更好的安全性、性能、可维护性和可移植性。
source: paragonie.com
速度 openssl 更快。看看下面的tablesource: jrm.cc
# php examples/compare.php
Results:
+---------+--------+----------+-------------+--------------+
| ext | keylen | textsize | (en/de)code | ops/sec |
+---------+--------+----------+-------------+--------------+
| mcrypt | 128 | short | enc | 5626.38872 |
| mcrypt | 128 | short | dec | 5729.21909 |
| mcrypt | 192 | short | enc | 5694.37256 |
| mcrypt | 192 | short | dec | 5682.78434 |
| mcrypt | 256 | short | enc | 5644.36358 |
| mcrypt | 256 | short | dec | 5661.23080 |
| mcrypt | 128 | medium | enc | 5583.97725 |
| mcrypt | 128 | medium | dec | 5650.75122 |
| mcrypt | 192 | medium | enc | 5591.54051 |
| mcrypt | 192 | medium | dec | 5552.83950 |
| mcrypt | 256 | medium | enc | 5524.18533 |
| mcrypt | 256 | medium | dec | 5513.65563 |
| mcrypt | 128 | long | enc | 4773.67544 |
| mcrypt | 128 | long | dec | 4774.14273 |
| mcrypt | 192 | long | enc | 4633.75035 |
| mcrypt | 192 | long | dec | 4634.35450 |
| mcrypt | 256 | long | enc | 4494.90529 |
| mcrypt | 256 | long | dec | 4280.92422 |
| openssl | 128 | short | enc | 168581.35048 |
| openssl | 128 | short | dec | 170417.03234 |
| openssl | 192 | short | enc | 172052.83452 |
| openssl | 192 | short | dec | 171349.94689 |
| openssl | 256 | short | enc | 171112.27154 |
| openssl | 256 | short | dec | 171644.45899 |
| openssl | 128 | medium | enc | 166944.11718 |
| openssl | 128 | medium | dec | 169084.25381 |
| openssl | 192 | medium | enc | 166665.50107 |
| openssl | 192 | medium | dec | 168459.47466 |
| openssl | 256 | medium | enc | 163878.40900 |
| openssl | 256 | medium | dec | 167946.82470 |
| openssl | 128 | long | enc | 110370.61207 |
| openssl | 128 | long | dec | 142731.36868 |
| openssl | 192 | long | enc | 103798.85171 |
| openssl | 192 | long | dec | 135396.21667 |
| openssl | 256 | long | enc | 96767.81100 |
| openssl | 256 | long | dec | 132203.99672 |
+---------+--------+----------+-------------+--------------+
废弃软件 mcrypt 基本上是废弃软件。因此,特别是如果您是从头开始(或作为 php.net comment states you are writing code in 2015), do it right . Go with OpenSSL.
我想这是一个优缺点的问题。
对于简单的数据加密:
与 mcrypt_encrypt
相比,使用 openssl_encrypt
的真正好处是什么?
不要使用 mcrypt。如果您在代码中输入单词 mcrypt,您可能会犯错误。尽管可以提供一个构建在 mcrypt 之上的相对安全的加密库(defuse/php-encryption 的早期版本做到了),但将您的代码切换到 openssl 将提供更好的安全性、性能、可维护性和可移植性。 source: paragonie.com
速度 openssl 更快。看看下面的tablesource: jrm.cc
# php examples/compare.php
Results:
+---------+--------+----------+-------------+--------------+
| ext | keylen | textsize | (en/de)code | ops/sec |
+---------+--------+----------+-------------+--------------+
| mcrypt | 128 | short | enc | 5626.38872 |
| mcrypt | 128 | short | dec | 5729.21909 |
| mcrypt | 192 | short | enc | 5694.37256 |
| mcrypt | 192 | short | dec | 5682.78434 |
| mcrypt | 256 | short | enc | 5644.36358 |
| mcrypt | 256 | short | dec | 5661.23080 |
| mcrypt | 128 | medium | enc | 5583.97725 |
| mcrypt | 128 | medium | dec | 5650.75122 |
| mcrypt | 192 | medium | enc | 5591.54051 |
| mcrypt | 192 | medium | dec | 5552.83950 |
| mcrypt | 256 | medium | enc | 5524.18533 |
| mcrypt | 256 | medium | dec | 5513.65563 |
| mcrypt | 128 | long | enc | 4773.67544 |
| mcrypt | 128 | long | dec | 4774.14273 |
| mcrypt | 192 | long | enc | 4633.75035 |
| mcrypt | 192 | long | dec | 4634.35450 |
| mcrypt | 256 | long | enc | 4494.90529 |
| mcrypt | 256 | long | dec | 4280.92422 |
| openssl | 128 | short | enc | 168581.35048 |
| openssl | 128 | short | dec | 170417.03234 |
| openssl | 192 | short | enc | 172052.83452 |
| openssl | 192 | short | dec | 171349.94689 |
| openssl | 256 | short | enc | 171112.27154 |
| openssl | 256 | short | dec | 171644.45899 |
| openssl | 128 | medium | enc | 166944.11718 |
| openssl | 128 | medium | dec | 169084.25381 |
| openssl | 192 | medium | enc | 166665.50107 |
| openssl | 192 | medium | dec | 168459.47466 |
| openssl | 256 | medium | enc | 163878.40900 |
| openssl | 256 | medium | dec | 167946.82470 |
| openssl | 128 | long | enc | 110370.61207 |
| openssl | 128 | long | dec | 142731.36868 |
| openssl | 192 | long | enc | 103798.85171 |
| openssl | 192 | long | dec | 135396.21667 |
| openssl | 256 | long | enc | 96767.81100 |
| openssl | 256 | long | dec | 132203.99672 |
+---------+--------+----------+-------------+--------------+
废弃软件 mcrypt 基本上是废弃软件。因此,特别是如果您是从头开始(或作为 php.net comment states you are writing code in 2015), do it right . Go with OpenSSL.