Question Utiliser CryptProtectData avec PowerShell (Résolu)

Plus d'informations
il y a 15 ans 10 mois #2418 par daniel soares
le pb sur la difference de resultat doit venir du niveau de cryptage
le mdp sur mon fichier rdp est sous la forme

[code:1]
01000000D08C9DDF0115D1118C7A00C04FC297EB01000000FAF1978A
00534944B3AB62CCD5832F2600000000080000007000730077000000
03660000A800000010000000B64B10710BEA57533D93223019AA880B
0000000004800000A00000001000000069CFC6FA1EAF259BFD3750C9
E5B03B2008020000B60EC8901EF63B8537B46E4E1D5484270842E6C1
9E72F218BAFA040406ABEDBA74A687732E401168434730573AEB7AF5
A9F56D4204371739B7A165DFEEAB552CF13D21A1710919D2CC5FFAA2
7B4650A3C2C823CCF7FC251A756594F8A94AD408C2A581718C6AC200
05EB8E25837B7C5F20A99E21D56224F2D51F01A7D2AA06B916F1168F
423B61AF081BCDB5D43B68E658BA09E9222B7DB111EA31BF087873
3a532DF5DA5BC76B08445379DE4F9D298DA1EE053EB851B3B2E8FF
C5033E42C6885CDA91FB8871A609F1E4725F164BF9B47B8CF0BDB0
EE66C3D5497C446472C2540A09BDCF83F4086EE698CAD8EB0E7A48
4DBDBA4C8A8C0C3695D13C14C8A6F51A8DC2D9FAA58B8CB80735A0
E2CEAA4BBA3943B0AB361F9160E5AA67E732CC2112EB77448B058F
9ABBB571F65DEEF79C184B8F6ABB2E2F062FD7BA794DC2EFF93A68
0013849AE7AC567AB961BDF42539B059939B8E23616E8CBE385F6D
360B03D48F2A093843ACE3C935D59297E9C8C7DA44314E219EC233
6B309B95D5F6F7D3A495A784CCB5950D79FE6DF89F396E7B3B6B6E
1DF5099F61970E9073147DDC416138E5D42BBD1200CEA3D99FD9DB
C0C0F3B667654811D620A9DFF61473ED733178E4868280A947B382
CE2E1DFBF6898419DA62A956681CF93C52AAAA2B6C994004CC8D74
F30F25A27329949AC7D2D200BE745493E2E57D3B1986B99F1C59C3
558F850E6CDEF9B378C3140000005E2B8F6E0AAF6B1D9360BD1FD1
0A8345972453070

[/code:1]

et le resultat du cryptage avec dpapi est

[code:1]
AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAVXxU79ob7kyZbbQSDYU87g
AAAAAQAAAATQB5ACAARABhAHQAYQAAAANmAACoAAAAEAAAACJgZKeR
tVIiHZp/Vl9jR60AAAAABIAAAKAAAAAQAAAAzH0xBjE3P91pqCoc8I
ayaBAAADX7nIpNxK2Njqkzr5beI3eFAAAAPAW6yiETg0mYFS9UX0dP
iNiSqJY
[/code:1]

en outre sur le code c# il y a deux methodes qui semblent explicites.
Convert.FromBase64String
et
Convert.ToBase64String

par contre je ne trouve pas d'equivalent en
convert.frombase128string sur msdn

je continue d'investiguer

si ca t'eclaire sur des solutions possibles n'hesites pas :)

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 10 mois #2422 par Laurent Dardenne
Dan écrit:

le pb sur la difference de resultat doit venir du niveau de cryptage

Oui d'après ce post :
www.remkoweijnen.nl/blog/2007/10/18/how-...words-are-encrypted/
Une partie du code C# utilisé semble erroné, voir le commentaire 54 et + (du lien cité).

D'après le commentaire la différence, entre les 2 password crypté, est \"normal\" et ne devrait pas poser de pb mais il te reste à le vérifier :whistle:
Je pense que tu es dans la bonne direction.

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 10 mois #2430 par daniel soares
ouaip ca repond exactement a mes interrogations
mais ils ont corrigé le code VB et pas le c sharp
du coup j'ai quelques difficultés a l'utiliser j'ai essayé de compiler le code final avec vbc mais ton code powershell ne fonctionne pas avec

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 10 mois #2437 par Laurent Dardenne
essaie ceci ( -+ ligne 228):
[code:1]
public static string Encrypt(KeyType keyType,
string plainText,
string entropy,
string description)
{
//<Code modifié>
Byte[] result;
StringBuilder encrypted = new StringBuilder();
//<Code modifié>

// Make sure that parameters are valid.
if (plainText == null) plainText = String.Empty;
if (entropy == null) entropy = String.Empty;

//<Code d'origine>
// Call encryption routine and convert returned bytes into
// a base64-encoded value.
// return Convert.ToBase64String(
// Encrypt(keyType,
// Encoding.UTF8.GetBytes(plainText),
// Encoding.UTF8.GetBytes(entropy),
// description));
//</Code d'origine>

//<Code modifié>
result = Encrypt(keyType,
Encoding.Unicode.GetBytes(plainText),
Encoding.Unicode.GetBytes(entropy),
description);

for (int i = 0; i <= result.Length - 1; i++)
encrypted.Append(Convert.ToString(result, 16).PadLeft(2, '0').ToUpper());

return encrypted.ToString();

//<Code modifié>
}
[/code:1]
Et dans l'appel
[code:1]$encrypted=[DPAPI]::Encrypt([DPAPI+KeyType]::MachineKey,$text,$entropy,\"My Data\"«»)[/code:1]
A vérifier.

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 10 mois #2459 par daniel soares
tu as assuré Laurent!!!!
ça fonctionne!!!!

l'appel correct est le suivant

[code:1]
$encrypted=[DPAPI]::Encrypt([DPAPI+KeyType]::UserKey,$mdp,$entropy,\"psw\"«»)
[/code:1]

la creation des fichiers rdp va permettre d'entierement paramétrer mes sessions TS sans avoir a les preenregistrer

je n'ai pas besoin du decryptage donc pour l'instant je laisse ce point en suspend et je me baserai sur le code que tu m'as fourni pour en comprendre le principe

une fois que j'aurai finalisé le script je le posterai pour qui est interessé.

merci encore pour ton aide precieuse.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 10 mois #2465 par Laurent Dardenne
Dan écrit:

merci encore pour ton aide precieuse.

Sur ce coup là je ne suis qu'un messager :)
Les contributions des personnes du forum cité y sont pour beaucoup !
Dan écrit:

une fois que j'aurai finalisé le script je le posterai pour qui est interessé.

Bonne idée, et si je peux me permettre, de le poster dans le forum contenant la solution ne serait pas une mauvaise idée non plus ;)

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.079 secondes
Propulsé par Kunena