Je veux crypter et décrypter un fichier en utilisant un seul mot de passe.
Comment puis-je utiliser OpenSSL pour faire cela ?
Je veux crypter et décrypter un fichier en utilisant un seul mot de passe.
Comment puis-je utiliser OpenSSL pour faire cela ?
Il existe un programme open source que j'ai trouvé en ligne et qui utilise openssl pour crypter et décrypter les fichiers. Il le fait avec un seul mot de passe. L'avantage de ce script open source est qu'il supprime le fichier original non crypté en le déchiquetant. Mais ce qui est dangereux, c'est qu'une fois que le fichier original non crypté a disparu, vous devez vous assurer que vous vous souvenez de votre mot de passe, sinon il n'y a pas d'autre moyen de décrypter votre fichier.
Voici le lien qu'il y a sur github
https://github.com/EgbieAnderson1/linux_file_encryptor/blob/master/file_encrypt.py
Notez que le CLI OpenSSL utilise un algorithme faible et non standard pour convertir la phrase de passe en une clé, et que l'installation de GPG entraîne l'ajout de divers fichiers dans votre répertoire personnel et l'exécution d'un processus d'arrière-plan gpg-agent. Si vous souhaitez bénéficier d'un maximum de portabilité et de contrôle avec les outils existants, vous pouvez utiliser PHP ou Python pour accéder aux API de niveau inférieur et transmettre directement une clé AES complète et un IV.
Exemple d'invocation de PHP via Bash :
IV='c2FtcGxlLWFlcy1pdjEyMw=='
KEY='Twsn8eh2w2HbVCF5zKArlY+Mv5ZwVyaGlk5QkeoSlmc='
INPUT=123456789023456
ENCRYPTED=$(php -r "print(openssl_encrypt('$INPUT','aes-256-ctr',base64_decode('$KEY'),OPENSSL_ZERO_PADDING,base64_decode('$IV')));")
echo '$ENCRYPTED='$ENCRYPTED
DECRYPTED=$(php -r "print(openssl_decrypt('$ENCRYPTED','aes-256-ctr',base64_decode('$KEY'),OPENSSL_ZERO_PADDING,base64_decode('$IV')));")
echo '$DECRYPTED='$DECRYPTED
Cette sortie :
$ENCRYPTED=nzRi252dayEsGXZOTPXW
$DECRYPTED=123456789023456
Vous pouvez également utiliser la fonction openssl_pbkdf2
pour convertir une phrase de passe en clé de manière sécurisée.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.