我在 20 多台 Plesk 服务器上托管了托管服务,版本 11。在以前的版本中,密码没有加密,如果我必须设计一些工具来管理托管帐户,我只是从数据库。但是现在密码是加密的,有什么办法可以解密密码吗?通过 API 或任何其他方式,以便我可以将基于 php 的托管管理与 plesk 11 集成?
Zor*_*che 12
为什么不弄清楚 Plesk 使用什么散列算法,并在您的 PHP 应用程序中复制该功能?您不需要密码的未加密版本来对其进行身份验证,并且您永远不想以明文或可逆加密方式存储密码。
小智 11
Giulio 提供的代码没有帮助,这里有一个实际有效的 Python 脚本。需要 PyCrypto (python-crypto)。假设 Plesk 密钥存储在/etc/psa/private/secret_key. 只需运行它并将加密的密码作为参数传递:
./deplesk.py '$AES-128-CBC$T82uDt6NSdytfhjQaOIKGg==$CMJ6FIdAD8zJ0PgwQ3DosA=='
Run Code Online (Sandbox Code Playgroud)
脚本:
#!/usr/bin/env python
import sys
import base64
from Crypto.Cipher import AES
key = open('/etc/psa/private/secret_key', 'rb').read()
for pw in sys.argv[1:]:
lead, typ, iv, ct = pw.split('$')
iv = base64.b64decode(iv)
ct = base64.b64decode(ct)
assert typ == 'AES-128-CBC'
plain = AES.new(key, mode=AES.MODE_CBC, IV=iv).decrypt(ct).rstrip(b'\0')
print(plain.decode('utf8'))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5764 次 |
| 最近记录: |