2017-10-02 1 views
-4

J'ai besoin de mettre en œuvre un simple (pas ultra-sécurisé) mais rapide fichier en/décryptage en PHP, donc les fichiers sont cryptés sur le téléchargement et décryptés au téléchargement. Les fichiers sont principalement des images (jpg) et des vidéos (mp4), et certaines vidéos ont jusqu'à 30 Mo, donc mon idée est de chiffrer uniquement les X premiers octets de chaque fichier, juste pour éviter toute personne qui aurait accès au serveur (ie personnes de soutien) pour ouvrir les fichiers des utilisateurs. Je suis nouveau à ce sujet et après presque 6 heures de recherche trouvé seulement de vieux exemples, en utilisant Mcrypt déprécié.Simple mais rapide de/cryptage de fichier binaire en utilisant PHP

S'il vous plaît, quelqu'un peut-il me donner des conseils pour commencer? Existe-t-il une méthode natif de PHP que je puisse utiliser, ou peut-être une bibliothèque open-source? Est-ce que Mcrypt serait une option, même si elle est dépréciée (j'utilise PHP 5.6). Pensez-vous que chiffrer seulement les X premiers octets du fichier est une bonne approche dans mon cas?

Merci!

+3

Ne serait-il pas préférable de mettre en place un système d'autorisation au lieu de falsifier les fichiers? – Eric

+0

"Pensez-vous crypter seulement les X premiers octets du fichier" Bien sûr que non. Vous faites une énorme supposition que les fichiers sont inutiles lorsque les premiers octets ne sont pas lisibles. Pourquoi crypterais-tu seulement les premiers x octets? – PeeHaa

+0

@Eric, les utilisateurs pourraient donner un accès FTP pour soutenir les gens, afin de résoudre les problèmes. – Guybrush

Répondre

1

Voici une bibliothèque de cryptage PHP: https://github.com/defuse/php-encryption

Je trouve cela juste par googler, je ne peux pas porter garant pour sa fiabilité ou de sécurité. Il y a de la documentation et des exemples sur cette page.

Toutefois, je vous demanderais de prendre du recul et de réfléchir à l'objectif et aux considérations de sécurité plus générales. Afin de le faire avec succès alors il doit y avoir un secret de sécurité, soit une clé ou un mot de passe, qui devra être caché aux personnes que vous ne voulez pas être en mesure de déchiffrer les données. Je peux imaginer que ce serait difficile si ces personnes sont le personnel de soutien. Si vous avez créé le mot de passe, le mot de passe de connexion de l'utilisateur est configuré pour une perte de données généralisée lorsqu'un utilisateur oublie son mot de passe. En outre, à un moment donné, il devra être non crypté et vous devrez vous assurer qu'il n'y a pas de fuites à ce stade. Et puis vous devez penser à qui a accès au code source qui gère l'accès au fichier, et le code clé/mot de passe. Qu'en est-il des journaux de serveur et des caches? Etc etc

En outre, si vous ne cryptez que le premier nombre X d'octets et que vous n'avez pas besoin de le rendre ultra-sécurisé, je me demande pourquoi vous essayez de le faire de cette façon? Je ne suis pas sûr du problème que vous essayez de résoudre. Etant donné que le cryptage n'est pas simple (sans parler des ressources informatiques), mais si vous ne le faites pas correctement, ce n'est pas très bon alors je ne peux pas m'empêcher de penser que vous serez probablement il vaut mieux faire l'effort de s'assurer que les personnes non autorisées n'accèdent à l'information que sur la base du besoin de savoir et que tous les accès sont consignés pour que les gens restent honnêtes.

+0

Merci d'avoir essayé de m'aider! Vous avez parfaitement raison dans vos commentaires. Je vais vérifier la bibliothèque que vous avez suggérée mais aussi je vais réfléchir à ce que l'on peut faire d'autre pour éviter le besoin de cryptage de fichiers. – Guybrush

+0

C'est en fait une bonne bibliothèque à recommander. Il donne un chiffrement authentifié. –