问题描述
随着 citrix netscaler 更新,OTP 现在被隐藏在 Active Directory 属性中。
由 Andreas Nick 创建的 OTP 浏览器工具到目前为止运行良好。
https://www.andreasnick.com/102-otpedit.html
citrix 文档说 OTP 机密现在由证书加密。加密后,存储在 Active Directory 属性中的 HASH 字符串如下所示。
一次性密码 3DHAZHNBYLK72SFKVUOLU6E4ZE
哈希(在 Active Directory 中) jjtTl0YY3MGIF77HPcqYs2w2bAc=.sbntdorhH2Ju15c5.kbJ8_AP8Ytu7BiNuICEfkiSgOVJMudtNXgn2eStfoOGyV42v6VbzLA==
我尝试使用所使用的证书加密 OTP 机密,但它们的字符数要多得多(总共 346 个 - citrix 加密有 102 个)。
在 citrix 网站上,它说它使用 base64 来加密数据。
我尝试使用此代码,但 HASH 不好。
$enc = [system.Text.Encoding]::UTF8
$string = "3DHAZHNBYLK72SFKVUOLU6E4ZE"
$data=$enc.GetBytes($string)
$sha1 = New-Object System.Security.Cryptography.SHA1CryptoServiceProvider
$ResultHash = $sha1.ComputeHash($data)
$str_out = [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes($ResultHash))
write-host $str_out
我的猜测是它使用证书指纹作为“密钥”,但我无法找到使用密钥/密码在 base64 中加密字符串的函数。
我尝试了为加密证书字符串而创建的其他函数,但无法找到与 Citrix 完成的函数匹配的函数。
我不擅长所有的加密。我只知道非常基础的知识,所以答案可能很明显,但由于我在该领域缺乏技能,我根本看不到它。
预先感谢您的帮助。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)