- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试为远程协助创建票证。其中一部分需要创建一个 PassStub 参数。截至文档:
http://msdn.microsoft.com/en-us/library/cc240115(PROT.10).aspx
PassStub:加密新手计算机的密码字符串。当远程协助连接字符串作为文件通过电子邮件发送,以提供额外的安全性,一个使用密码。<16>
在第 16 部分中,他们详细介绍了如何创建 PassStub。在 Windows XP 和 Windows Server 2003 中,当使用密码时,使用PROV_RSA_FULL 预定义加密提供程序,具有 MD5 哈希和 CALG_RC4,即 RC4流加密算法。
因为 PassStub 在文件中看起来像这样:PassStub="LK#6Lh*gCmNDpj"
如果您想自己生成一个,请在 Vista 中运行 msra.exe 或在 WinXP 中运行远程协助工具。
文档说这个 stub 是函数 CryptEncrypt 的结果,其 key 从密码派生并使用 session ID 加密(这些也在票证文件中)。
问题是 CryptEncrypt 产生的二进制输出比 15 字节的 PassStub 大。此外,PassStub 没有以我以前见过的任何方式进行编码。
关于 PassStub 编码的一些有趣的事情。在进行统计分析后,第 3 个字符始终是以下字符之一:!#$&()+-=@^。唯一随处可见的符号是:*_。否则有效字符为 0-9 a-z A-Z。总共有 75 个有效字符,它们总是 15 个字节。
使用相同的密码运行 msra.exe 总是会生成不同的 PassStub,这表明它不是直接散列,而是像他们所说的那样包含 rasessionid。
我的另一个想法是它不是 CryptEncrypt 的直接结果,而是 MD5 哈希中的 rasessionid 的结果。在 MS-RA ( http://msdn.microsoft.com/en-us/library/cc240013(PROT.10).aspx ) 中。 “PassStub Novice”只是十六进制编码,看起来长度合适。问题是我不知道如何从任何散列到 PassStub 的样子。
最佳答案
我很好奇,你有没有:
ISAFEncrypt::EncryptString(bstrEncryptionkey, bstrInputString)
作为直接使用 CryptEncrypt
完成所有肮脏工作的更高级别的替代方案? (tlb
在 hlpsvc.exe
中)c:\WINDOWS\pchealth\helpctr\Vendors\CN=Microsoft Corporation,L=Redmond,S=Washington,C=US\Remote Assistance\Escalation\Email\rcscreen9.htm
(WinXP) 以查看当您选择将邀请另存为文件(高级) 选项并提供密码时发生了什么? (随意在 OnSave()
中添加 alert()
调用)关于windows - 加密难题/如何为远程协助票证创建 PassStub,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2569678/
我是一名优秀的程序员,十分优秀!