我想生成具有自动登录功能的 rdp 文件,因此需要生成加密密码并填写 rdp 文件。
对于加密工具,我使用的是 jna 开源的 Crypt32Util(我也尝试过 DPAPI DataProtector,结果是一样的)。但结果不正确...
正如http://www.remkoweijnen.nl/blog/2007/10/18/how-rdp-passwords-are-encrypted/中所指出的,字符串应该是 unicode,这就是我在 getBytes 中使用 'UTF-16LE' 的原因(我也曾尝试使用 getBytes() 和 getBytes("UTF-8"),没有人工作......)
非常感谢您的帮助,给我一些启发,谢谢!
这是代码:
public String pwdEncrypt(String password){
byte[] pwdBytes = null;
try{
pwdBytes = password.getBytes("UTF-16LE");
}catch(Exception e){
e.printStackTrace();
}
byte[] encryptedPwd = Crypt32Util.cryptProtectData(pwdBytes);
return String.valueOf(Hex.encodeHex(encryptedPwd));
}