Powershell - 使用密钥/密码短语进行 base64 编码

问题描述

随着 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 来加密数据。

https://docs.citrix.com/en-us/citrix-adc/current-release/aaa-tm/authentication-methods/native-otp-authentication/otp-encryption-tool.html

我尝试使用此代码,但 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 (将#修改为@)