#1 Le 17/04/2020, à 02:53
- passio
Crypter une phrase dans une autre phrase sur le long terme.
Bonjour, je voudrais crypter une chaine de caractère dans une autre chaine de caractère... J'ai besoin que ce soit rétrocompatible sur Mac ou Linux... sans risque de perdre la manière dont j'ai crypté ma phrase après quelques années... Il y a une infinité de système qui font ce Job sur le Net, mais je ne veux avoir un système de cryptage qui ne dépend pas d'un truc trouvé sur Github ou autre... Je voudrais quelque chose d'aussi solide qu'un gpg -c "monfichier"... qui marche aussi bien sur Mac que Linux et que je sais que je pourrais toujours décrypter facilement dans quelques années...
Je pensais avoir trouvé la solution, mais cela ne semble pas compatible de Mac à Linux, Pourquoi ?
Sur mac je crypte :
echo 'La phrase que je veux securiser' | openssl aes-256-cbc -a
Sur mac je décypte immédiatement :
Décrypter : echo -e "U2FsdGVkX19/4SSCS/XRU6sf/XqNFR8TFllTRdRHEIEEl1WQqIKgMbIDiuN6sQJk\nKSC64q/Q3AyRhlG+16ONQuReoGpTonQnCSDI8pc/2m7mSwEbmAtpyjqN8OLEtvkS" | openssl aes-256-cbc -a -d
ça fonctionne très bien...
Par contre, si je prends ma ligne de commande de décryptage, je peux aller l'écrire sur Ubuntu, Lubuntu, Fedora, j'obtiens un : digital envelope routines:EVP_DecryptFinal_ex:bad decrypt://+crypto/evp/evp_enc.c:583
Il y a une commande gpg -as mais elle dépend d'une key elle-même protégée par une passphrase... Or, je ne veux pas avoir cette clé que je peux perdre, qu'il faut exporter etc...
Je cherche un système simple pour avoir une chaine de caractère en entrée, une chaine de caractère en sortie, et l'encryption avec une passphrase... La commande openssl me semblait pas mal mais ce manque d'interropérabilité entre mac et Linux me fait perdre un peu foi pour le long terme...
Hors ligne
#2 Le 17/04/2020, à 04:07
- passio
Re : Crypter une phrase dans une autre phrase sur le long terme.
Après 5heures de recherches :
Voici la solution :
Crypter :
echo 'La phrase que je veux crypter' | gpg --symmetric | base64
Décrypter :
echo -n "jA0EBwMC9OXBXNrz8qno0n0BUU8s4q9ze7dYDs4WJsJmTc2zDrveTXIidVPSgzSU26yHpvGiXCH7AXAYBuEYl+O0eUikyCAqhzSb0mFPyIkm0pHeENU4xb1/3kja81/WkN/pbFv6ZcrIGRVGIJj88E8dx3Qv87S/5KIsz2l5jnWbanjLnprgddHWu+tRMQ==" | base64 --decode | gpg -d
Si vous avez une erreur comme moi pour le décryptage, suivez ce tutoriel qui prend 30 secondes pour le fixer :
https://d.sb/2016/11/gpg-inappropriate- … ice-errors
Dernière modification par passio (Le 17/04/2020, à 04:07)
Hors ligne
#3 Le 19/04/2020, à 13:58
- LeoMajor
Re : Crypter une phrase dans une autre phrase sur le long terme.
bonjour,
l'option --armor (gpg) est équivalente à -base64 (openssl enc). Le but recherché est de pas avoir de binaire à la sortie.
gpg
:~$ gchiff=$(gpg --symmetric --armor <<<"bonjour")
:~$ echo "$gchiff"
-----BEGIN PGP MESSAGE-----
Version: GnuPG v1
jA0EBwMCMjshUq4Fn7dg0j0B5uDOEJ/38gxGjf1rdEpGUCfogluDGiJmIZzSLeMU
jsKhJOSXW899Naf72H+YCIKVr1MP+HWrErJ/IuB9
=zrXU
-----END PGP MESSAGE-----
:~$ dgchiff=$(gpg -d --armor <<<"$gchiff")
:~$ echo "$dgchiff"
bonjour
openssl
:~$ chiff=$(openssl enc -e -aes-256-cbc -base64 <<<"bonjour")
:~$ echo "$chiff"
U2FsdGVkX19aecMmaTrJIuEWByjwY3tnVjlB4HTg8MM=
:~$ dchiff=$(openssl enc -d -aes-256-cbc -base64 <<<"$chiff")
:~$ echo "$dchiff"
bonjour
man openssl enc
appuyez sur q, puis enter/return
----
pour la passphrase ( -k), 2 cas possibles a et b :
0/
openssl rand -base64 1024 > /tmp/clef_password
a/
openssl ... -pass file:/tmp/clef_password -k secret ...
openssl enc -e -bf-cbc -in /tmp/bonjour -out /tmp/chiffre -pass file:/tmp/clef_password -k secret -base64
b/ substitution par -S -K -iv
openssl enc -e -bf-cbc -in /tmp/bonjour -out /tmp/chiffre -pass file:/tmp/clef_password -k secret -base64 -p
salt=66029ABB35CD0059
key=2867E139781A73DE79F592EFD5F67F7B
iv =A5707E18033BFF02
openssl enc -e -bf-cbc -in /tmp/bonjour -out /tmp/chiffre -S 66029ABB35CD0059 -K 2867E139781A73DE79F592EFD5F67F7B -iv A5707E18033BFF02 -k secret -base64 -p
salt=66029ABB35CD0059
key=2867E139781A73DE79F592EFD5F67F7B
iv =A5707E18033BFF02
openssl enc -e -bf-cbc -in /tmp/aurevoir -out /tmp/auchiffre -S 66029ABB35CD0059 -K 2867E139781A73DE79F592EFD5F67F7B -iv A5707E18033BFF02 -k secret -base64
openssl enc -d -bf-cbc -in /tmp/chiffre -S 66029ABB35CD0059 -K 2867E139781A73DE79F592EFD5F67F7B -iv A5707E18033BFF02 -k secret -base64
openssl enc -d -bf-cbc -in /tmp/auchiffre -S 66029ABB35CD0059 -K 2867E139781A73DE79F592EFD5F67F7B -iv A5707E18033BFF02 -k secret -base64
pour le password, plusieurs syntaxes posssibles ; secret est le password
-pass pass:secret
-pass stdin
echo "secret" | openssl enc -d -bf-cbc -in /tmp/chiffre -out /tmp/dechiffre -pass stdin
openssl enc -e -bf-cbc -in /tmp/bonjour -out /tmp/chiffre -pass /tmp/password
...
Hors ligne