我试图以编程方式通过JNA(Java Native Access)检索Windows中Reversible Encryption
设置的全局值。
我可以通过JNA读取全局用户密码策略中的其他值,例如
但是没有关于如何具体了解Java中可逆加密的价值的信息?我试图google但无济于事。有人知道吗?
答案 0 :(得分:0)
使用密钥ClearTextPassword
在RSOP_SecuritySettingBoolean课程的WMI中提供了可逆加密设置。
可以通过命令行(例如wmic /NAMESPACE:\\root\RSOP\Computer path RSOP_SecuritySettingBoolean
)或PowerShell查询WMI。我已经实现了一个WMI Util class using JNA来实现C代码来查询WMI,如果你更喜欢程序化方法,你可以复制它(你需要更多的类。)
您也可以在命令行执行此操作:Secedit.exe /export /cfg c:\cfg.txt
并读取输出文件,查找ClearTextPassword
的值。
看起来您可能fetch the value with a binary dump of the contents注册表项\HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\F
,在这种情况下,该值将存储在偏移0x004C的字节的4个最高有效位中。您可以使用JNA's Advapi32Util class(在这种情况下,可能是registryGetBinaryValue()
)阅读注册表。
我还找到了一个可能有用的注册表位置(完全未经测试):
\HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\SeCEdit\Reg Values
。这指向Machine/System/CurrentControlSet/Services/Netlogon/Parameters
中的类似设置,可能有用也可能没有帮助