Quel est le moyen le plus simple de réaliser un cryptage à double sens dans les installations PHP courantes ?
Je dois pouvoir crypter des données avec une clé de type chaîne et utiliser la même clé pour décrypter à l'autre bout.
La sécurité n'est pas une préoccupation aussi importante que la portabilité du code, et j'aimerais donc pouvoir garder les choses aussi simples que possible. Actuellement, j'utilise une implémentation RC4, mais si je peux trouver quelque chose de supporté nativement, je pense que je peux économiser beaucoup de code inutile.
7 votes
Il suffit de faire un XOR de votre chaîne.
3 votes
Pour un chiffrement à usage général, utilisez defuse/php-encryption/ au lieu d'en faire un.
3 votes
Mains éloignées de github.com/defuse/php-encryption - il est plus lent de plusieurs ordres de grandeur que Mcrypt.
0 votes
defuse/php-encryption
utiliseopenssl()
qui peut tirer partiAES-NI
(ce qui n'est pas le cas de libmcrypt) et, selon la quantité de données que vous chiffrez, peut donc fournir un débit de chiffrement beaucoup plus rapide que mcrypt. Veuillez poster un benchmark côte à côte pour justifier votre affirmation.0 votes
De plus, @EugenRieck, le cryptage ne sera probablement pas le goulot d'étranglement de votre application. Si c'est le cas, utilisez libsodium ;)
1 votes
@Scott C'est en pensant que "ce ne sera probablement pas le goulot d'étranglement" que nous avons eu beaucoup de mauvais logiciels.
5 votes
Si vous cryptez/décryptez beaucoup de données au point que les millisecondes que cela vous coûte ralentissent votre application, prenez votre mal en patience et passez à libsodium.
Sodium::crypto_secretbox()
ySodium::crypto_secretbox_open()
sont sécurisés et performants.0 votes
Depuis que mon commentaire précédent a été posté, les liens PHP de libsodium ont changé. Maintenant, vous devez utiliser
\Sodium\crypto_secretbox()
y\Sodium\crypto_secretbox_open()
.0 votes
Je vous suggère d'utiliser la nouvelle bibliothèque Sodium en PHP 7.1+. Cette bibliothèque a seulement besoin d'une clé secrète et d'une clé publique comme paramètre, et pour chaque ligne d'un nonce unique. Cette bibliothèque (wrapper) peut vous aider, les méthodes sont faciles à utiliser et vous n'avez pas besoin de comprendre la bibliothèque Sodium vous-même : github.com/internetpixels/sodium-encryption
0 votes
Rot13 avec un code de passe nul, imho
0 votes
Oui, c'est ce que je recherche.