1
Я уже попробовал еще решения от SO, такие как:Зашифровать пароль RDP с Java
String password ="pwd";
WinCrypt.DATA_BLOB pDataIn = new WinCrypt.DATA_BLOB(password.getBytes(Charset.forName("UTF-16LE")));
WinCrypt.DATA_BLOB pDataEncrypted = new WinCrypt.DATA_BLOB();
System.out.println(Crypt32.INSTANCE.CryptProtectData(pDataIn, "psw",
null, null, null, WinCrypt.CRYPTPROTECT_UI_FORBIDDEN, pDataEncrypted));
StringBuffer epwsb = new StringBuffer();
byte[] pwdBytes= new byte [pDataEncrypted.cbData];
pwdBytes=pDataEncrypted.getData();
Formatter formatter = new Formatter(epwsb);
for (final byte b : pwdBytes) {
formatter.format("%02X", b);
}
System.out.println("password 51:b:"+ epwsb.toString());
или
Crypt32Util.cryptProtectData("12345".getBytes("UTF-16LE"), null, 0, "psw", null);
Но все они дают разные результаты каждый раз я бегу их , и они не соответствуют реальному паролю, который был сохранен MSTSC или сгенерирован утилитой RGB Password Hasher. Кто-нибудь знает решение или CLI-утилиту, которая может шифровать пароль?
«все они дают разные результаты каждый раз, когда я запускаю их» <- вы уверены, что не производите a_hash_ этого пароля, а не зашифрованной формы? Если это хэш, то вполне нормально, что со временем это может измениться, этот хэш солен ... – fge